directorio betabeers - symfony madrid

29
Directorio Betabeers 5 meses | 613 commits | 2342 redbulls @miquelcamps

Upload: betabeers

Post on 11-May-2015

328 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Directorio betabeers - symfony madrid

Directorio Betabeers

5 meses | 613 commits | 2342 redbulls

@miquelcamps

Page 2: Directorio betabeers - symfony madrid

Eduardo Gulias

¡Gracias por los 20 commits!

Page 3: Directorio betabeers - symfony madrid

Estructura

- Pajas mentales con symfony

- Entorno de trabajo, Bundles, Bloques, integración bootstrap.io

- Chapuzas

- Métricas

- Gamificación

- Capturas backoffice

- Cosas por hacer

Page 4: Directorio betabeers - symfony madrid

¿Por qué symfony?

- Lo conocí en la php conference barcelona

- No tenía experiencia con frameworks

- Proyectos ya lo usan en producción producción (ulabox,facultia)

- Comunidad

- Documentación

Page 5: Directorio betabeers - symfony madrid

Lo que me gusta

1- Actualización de tablasapp/console doctrine:schema:update --force

2- Generadorapp/console generate:bundle

3- Estructura de ficheros

4- Twig y los bloques

5- Comunidad

Page 6: Directorio betabeers - symfony madrid

No me gusta

1- Tamaño

2- Error al editar un controlador

Page 7: Directorio betabeers - symfony madrid

php app/console cache:clear

Page 8: Directorio betabeers - symfony madrid
Page 9: Directorio betabeers - symfony madrid

Entorno de trabajo

local --> github --> producción

Page 10: Directorio betabeers - symfony madrid

Entorno de trabajo

1- local (mac + mamp + sublimetext2 + redbull)

2- commit github (github client mac)http://github.com/miquelcamps/directoriopro

3- pull servidor dedicado kemsirve.es (linux ubuntu)

Comando mágico

git pull;rm -rf app/cache/prod/;mkdir app/cache/prod;chmod 777 app/cache/prod

Page 11: Directorio betabeers - symfony madrid

Bundles

De terceros Pagerfanta de Pablo Díez @pablodip https://github.com/whiteoctober/Pagerfanta

Propios Anuncios User Event Place Test Api City Project

Page 12: Directorio betabeers - symfony madrid

Bloques Layout

/AnunciosBundle/Resources/views/layout.html.twig

<html><head><title>{% block title %}{% endblock %} - {{sitename}}</title>{% if canonical_url is defined %}<link rel="canonical" href="{{ canonical_url }}"/>{% endif %}</head><body><!--header-->{% block content %}{% endblock %}{% block sidebar %}{% endblock %}<!--footer-->{% block load_src %}{% endblock %}{% block script_load %}{% endblock %}</body></html>

Page 13: Directorio betabeers - symfony madrid

Bloques sección

/AnunciosBundle/Resources/views/Post/index.html.twig

{% extends "ApplicationAnunciosBundle::layout.html.twig" %}

{% block title "Bolsa de empleo 2.0" %}

{% block sidebar %}bla bla{% endblock %}

{% block content %}bla bla{% endblock %}

{% block load_src %}bla bla{% endblock %}

{% block script_load %}bla bla{% endblock %}

Page 14: Directorio betabeers - symfony madrid

Integración bootstrap.io

Estáticos/web/ -> ficheros

Template layout/AnunciosBundle/Resources/views/layout.html.twig

Template form/AnunciosBundle/Resources/views/Form/fields.html.twig/AnunciosBundle/Resources/views/Post/new.html.twig

Page 15: Directorio betabeers - symfony madrid

Integrar bootstrap.io en formularios

$form = $this->createForm(new LoginType(), $entity);$form['pass']->addError( new SymfonyForm\FormError( "La contraseña no es correcta" ));

Page 16: Directorio betabeers - symfony madrid

Integrar bootstrap.io en formularios

{% form_theme form 'ApplicationAnunciosBundle:Form:fields.html.twig' %}

<form class="form-horizontal" action="x" method="post" >

{{ form_row(form.email, { 'label': 'Email' }) }}

<div class="form-actions"> <button type="submit" class="btn btn-primary">Crear cuenta</button> </div>

{{ form_row(form._token) }}

</form>

Page 17: Directorio betabeers - symfony madrid

Chapuzas - facebook connect

No he podido hacer funcionar FOS (friends of symfony)

1- login facebook fbloginAction()/src/Application/UserBundle/

2- se require del ejemplo de facebook/vendor/facebook/example.php

https://github.com/facebook/php-sdk

Page 18: Directorio betabeers - symfony madrid

Chapuzas - URLs bonitas/post/86/show --> /post/esto-es-una-prueba-9/

urls en twig{{ path('post_show', { 'id': entity.id, 'slug': entity.slug }) }}

controller action 1@Route("/{id}/show", name="post_show2")

$this->redirect($this->generateUrl('post_show', array('id' => $entity->getID(), 'slug' => $entity->getSlug() )),301);

controller action 2@Route("/{slug}-{id}/", requirements={"slug" = "[a-z0-9\-]+", "id" = "^\d+$"}, name="post_show")

layout{% if canonical_url is defined %}<link rel="canonical" href="{{ canonical_url }}"/>{% endif %}

Page 19: Directorio betabeers - symfony madrid

MétricasContabilizar visitas$session = $this->getRequest()->getSession();$session_id = $session->get('id');if( $session_id != $entity->getUserId() ){$entity->setVisits( $entity->getVisits() + 1 );$em->persist($entity);$em->flush();}

Geolocalización geonames.org (country_id, city_id)

Dashboard (totales generales)

Google Analytics analizar que busca el usuariohttps://support.google.com/analytics/bin/answer.py?hl=es&answer=1012264

Page 20: Directorio betabeers - symfony madrid

GamificaciónCaptar nuevos usuarios

Page 21: Directorio betabeers - symfony madrid

Gamificación

Page 22: Directorio betabeers - symfony madrid

Gamificación

Page 23: Directorio betabeers - symfony madrid

GamificaciónObligar el usuario a rellenar perfil

Page 24: Directorio betabeers - symfony madrid

Dashboard

Page 25: Directorio betabeers - symfony madrid

Backoffice anuncios

Page 26: Directorio betabeers - symfony madrid

Backoffice usuarios

Page 27: Directorio betabeers - symfony madrid

Cosas por hacer...

- Optimizar queries (likes) y cacheo

- Internacionalización

- Hacer autoescalable mover a phpfog

- Mejorar seo (sitemaps, urls bonitas)

Page 28: Directorio betabeers - symfony madrid

Megacracks de symfony

@egulias

@raulfraile

@nacmartin

@ricardclau

@Osukaru80

@moisesgallego

Page 29: Directorio betabeers - symfony madrid

¡Gracias!

Posts de como empezar:http://miquelcamps.com/symfony/

Repositorio betabeers:http://github.com/miquelcamps/directoriopro

Twitter@miquelcamps