Controladores ● Reciben todas las peticiones. ● “Arrancan” Symfony2. ● Puede haber varios que carguen distintas configuraciones. ● Por defecto hay 2: ● Para producción. ● Para desarrollo.
Web Debug Bar ● Version de Symfony ● Detalles de PHP ● Profiling token ● Acción ejecutada ● Tiempo de carga ● Memoria consumida ● Detalles sobre seguridad ● Consultas ejecutadas
Consola de Symfony2 ● php app/console * ● Listar comandos: php app/console list ● Tareas comunes desde consola. ● Generadores automáticos del código. ● Gestión de la base de datos. ● Ayuda en la depuración.
Doctrine 2 ● Se divide en 3 componentes independientes: ● Doctrine Common ● Doctrine DBAL (incluye Common) ● Doctrine ORM (incluye DBAL + Common) ● No tiene nada que ver con “Doctrine 1” ● Reescrito totalmente. ● No es ActiveRecord. ● Pierde los Behaviors
Doctrine2: conceptos básicos ● Entity ● Objeto PHP ligero “normal” que equivale a una entidad. ● Los atributos del objeto son los campos en la BD. ● Los atributos deben estar encapsulados. ● Puede contener otros métodos. ● EntityManager ● “Punto de acceso” único del ORM. ● Gestión de la persistencia de objetos. ● Ejecución de consultas para obtener objetos. ● Patrón de diseño “Unit of Work”.
Doctrine2 & Symfony2 ● Doctrine2 viene por defecto incluido en Symfony2 (de momento). ● Es un bundle más. ● Doctrine2Bundle añade: ● Definir Entities usando anotaciones. ● Utilidades por línea de comandos.
php app/console generate:bundle ● Bundle namespace ● TheEvnt/LibraryBundle ● Bundle name ● TheEvntLibraryBundle (default) ● Target directory: ● /var/www/Symfony/src ● Configuration format ● Annotation ● Do you want to generate the whole directory structure ● No ● Do you confirm generation ● Yes ● Confirm automatic update of your Kernel ● Yes ● Confirm automatic update of the Routing ● Yes
Doctrine Query Builder ● Manera alternativa para crear consultas. ● Menos flexible que DQL. ● Más legible que DQL. ● Se usa un objeto QueryBuilder asociado a una Entity. ● Implementa una interfaz fluida.
Formularios + Symfony2 ● Symfony2 tiene un componente para formularios. ● Se crean mediante clases. ● Totalmente distinto a Symfony 1.X. ● Se integran con las Entities de Doctrine2. ● Las clases de formularios van en la carpeta Forms de un bundle. ● Helpers Twig para renderizar formularios.
Validadores de datos ● Se pueden definir en las Entities de Doctrine2 mediante anotaciones. ● Se integran con los formularios. ● Ejecutan los validadores. ● Muestran los mensajes de error.