Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Instroduccion y Resumen Symfony PDF
Instroduccion y Resumen Symfony PDF
Brenes Martnez
Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
2010/03/22
Desarrollo habitual
Symfony David J. Brenes Martnez Introducing Symfony
Estructura ad-hoc de directorios Directorios de cdigo pblicos (die, con suerte) La conguracin es otro chero PHP Cdigo Spaguetti
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
PHP es un lenguaje pobre PHP no es apto para proyectos a gran escala PHP no es mantenible PHP genera proyectos basura
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
PHP es un lenguaje pobre PHP no es apto para proyectos a gran escala PHP no es mantenible PHP genera proyectos basura
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Mustrame a alguien que programe mal en PHP y te mostrar a alguien que programa mal.
Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Todo escala Facebook Tuenti Yahoo! ... Pero hay que hacerlo bien
Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Desarrollo web menos ad-hoc Popularizacin de patrones de diseo, buenas prcticas. . . Incremento de exigencia en desarrollo web Aparicin de soluciones avanzadas
La llegada de Symfony
Symfony David J. Brenes Martnez Introducing Symfony
Proyecto comercial de SensioLabs (Sensio Framework) Liberacin e inicio del proyecto Symfony en 2005 1 ao ms tarde que Rails
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Inspiracin
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Basado en conceptos de otros frameworks (Rails, Spring, Django. . . ) Actualmente comparte caractersticas con otros frameworks (Rails) Uso de otros proyectos PHP (Propel, Doctrine, PHPUnit. . . )
Proyectos
Symfony David J. Brenes Martnez Introducing Symfony
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Componentes
Symfony David J. Brenes Martnez
Bibliotecas nacidas del core de Symfony Usables en cualquier otro proyecto de maner directa Parseador de YAML Manejador de eventos Gestor de dependencias Sistema de plantillas Gestor de peticiones
Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
MVC en Symfony
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
MVC en Symfony
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Controlador
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
1 2
Servidor Web captura la peticin La redirige al punto de entrada (index.php) con parmetros index.php inicia el controlador El controlador decide a qu accin corresponde la ruta
3 4
Modelo
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
1 2 3
La accin (controlador) solicita unos datos al modelo La accin realiza modicaciones al modelo El modelo persiste esas modicaciones si la accin lo solicita La accin pasa esos del modelo a la vista
Vista
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
1 2 3
La vista no tiene lgica de proceso Solo genera HTML en base a los datos que recibe La accin decide que vista se genera y con qu parmetros Una vez que la vista termina, el controlador le devuelve el resultado
Descarguemos Symfony
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony
www.symfony-project.org
Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Directorios
Symfony
apps: Un directorio para cada aplicacin posible dentro de Symfony cache: Ficheros para la cach cong : Ficheros de conguracin data: Ficheros de datos variados como xtures lib: Ficheros de cdigo global a las aplicaciones (el modelo, software ajeno a Symfony. . . ) log : Ficheros de log plugins: Plugins aadidos a Symfony tests: Suite de tests de la aplicacin web: Carpeta pblica
David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Aplicaciones
Symfony David J. Brenes Martnez
Symfony permite tener conviviendo varias aplicaciones en un proyecto Aplicaciones que comparten modelo, base de usuarios, etc. Ejemplo tpico: Frontend / Backend / API Aplicaciones independientes (incluso dominios distintos)
Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Mdulos
Symfony David J. Brenes Martnez Introducing Symfony
Cada aplicacin tiene varios mdulos Los mdulos permiten separar aspectos de la aplicacin Cada mdulo puede tener conguracion diferente
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Lib
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
model: El cdigo del modelo (VOs, DAOs y Formularios) helpers: conjunto de funciones de ayuda vendor: Codigo ajeno al framework (o el propio framework)
Plugins
Symfony David J. Brenes Martnez Introducing Symfony
Miniaplicaciones autocontenidas. Su propia conguracin, sus propios modelos. Se mantienen en repositorios aparte (anlogo a las gemas de Rails)
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Web
Symfony David J. Brenes Martnez Introducing Symfony
nica carpeta que debera tener acceso pblico. Contiene los entornos de las aplicaciones index.php: Entorno por defecto para la aplicacin por defecto
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Despliegue
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Apuntar en Apache a la carpeta web Copiar carpeta /lib/vendor/symfony/data/web/sf a la carpeta web Visitar entorno de produccin Visitar entorno de depuracin
Prueba rpida
Symfony David J. Brenes Martnez Introducing Symfony
Descargar schema.yml Descargar databases.yml Activar driver MySQL (extension=php_pdo_mysql.dll) Unas cuantas tareas
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Tareas de plugins
Symfony David J. Brenes Martnez Introducing Symfony
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Tarea de cach
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
symfony cache:clear Symfony dispone de cach Se cachean cosas importantes (conguracin, vistas, modelos. . . ) En entorno de produccin la cach es ms agresiva Si algo nocambia, cache:clear
Convention over conguration: Uso de convenciones para evitar conguraciones explcitas Menos cantidad de trabajo Ms magia y potencia Ms necesidad de memoria
Symfony cona ms en cheros de conguracin PHP es menos exible que Ruby PHP permite menos magia
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Formato de representacin de datos alternativo a XML y JSON Basado en espacios para indentar conguraciones Formato muy legible y sencillo
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
YAML en Symfony
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Todos los cheros de conguracin son YAML Componente de Symfony para parseo de YAML
Niveles de conguracin
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Conguracin de Symfony Conguracin de Plugins Congracin de proyecto Conguracin de aplicacin Conguracion de mdulo
Entornos de conguracin
Symfony David J. Brenes Martnez Introducing Symfony
Conguracin especca para entornos de desarrollo, produccin y test Permiten cambiar de entorno a placer
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Settings.yml
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Cuestiones generales sobre el proyecto y las aplicaciones Codicacin de caracteres Cuestiones de seguridad Pginas de error
Factories.yml
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Conguracin para objetos necesitados por el framework (cach, i18n. . . ) Permite cargar objetos en el core de Symfony cambiando el comportamiento Ejemplos: Nuevos sistemas de cach, i18n en Base de Datos. . .
Databases.yml
Symfony David J. Brenes Martnez Introducing Symfony
Dene la conguracin de conexion a BD Permite denir conexiones diferentes para cada entorno
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Security.yml
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Security.yml
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Routing.yml
Symfony David J. Brenes Martnez Introducing Symfony
Congura el sistema de rutas La conguracin va en cascada. La primera ruta que coincide es la que se usa.
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
App.yml
Symfony David J. Brenes Martnez Introducing Symfony
Conguracin especca de una aplicacin Permite denir parmetros propios Usado por los plugins para denir su propia conguracin
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
lters.yml
Symfony David J. Brenes Martnez Introducing Symfony
Dene los ltros por los que debe pasar la Request para ecutarse Permite pasar parmetros a los ltros
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
view.yml
Symfony David J. Brenes Martnez Introducing Symfony
Dene la conguracion de las vistas Permite cargar CSS, JS, denir elementos meta, ttulos de pgina. . .
MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Referencias
Symfony David J. Brenes Martnez
Symfony Project: www.symfony-project.org The Symfony Reference Book: http://www. symfony-project.org/reference/1_4/en/ Practical Symfony: http://www.symfony-project.org/jobeet/1_ 4/Doctrine/en/ The Denitive Guide to symfony: http://www.symfony-project.org/book/1_2/
Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Crditos
Symfony David J. Brenes Martnez Introducing Symfony MVC en Symfony
Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia
Licencia
Symfony David J. Brenes Martnez
Estas transparencias se publican bajo licencia Creative Commons y se pueden redistribuir o modicar bajo las siguientes condiciones: Se d reconocimiento al autor de estas transparencias. No se use con propsitos comerciales. Se distribuya con la misma licencia. Texto de la licencia: http: //creativecommons.org/licenses/by-nc-sa/3.0/
Introducing Symfony MVC en Symfony Una aplicacin Symfony Consola Symfony Sistema de conguracin Referencias, Crditos y Licencia