Desarrollo rápido con PHP y Symfony (I): Introducción a Symfony

7,400 views
7,250 views

Published on

Introducción al framework de desarrollo Symfony, explicando la estructura de una aplicación Symfony, el funcionamiento de su consola y detalles de su configuración

Published in: Education
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
7,400
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
224
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Desarrollo rápido con PHP y Symfony (I): Introducción a Symfony

  1. 1. Symfony David J. Brenes Martínez Desarrollo rápido con PHP y Symfony Introducing Symfony (I) Introducción a Symfony MVC en Symfony Una aplicación David J. Brenes Martínez Symfony Consola Symfony Curso de Extensión Universitaria Sistema de Desarrollo web avanzado configuración Universidad de Oviedo Referencias, Créditos y Licencia 2010/03/22
  2. 2. Desarrollo habitual Symfony David J. Brenes Martínez Introducing Symfony Estructura ad-hoc de directorios MVC en Symfony Directorios de código públicos (die, con suerte) Una aplicación La configuración es otro fichero PHP Symfony Consola Código Spaguetti Symfony Sistema de configuración Referencias, Créditos y Licencia
  3. 3. Y llegan los detractores Symfony David J. Brenes Martínez Introducing Symfony PHP es un lenguaje pobre MVC en Symfony PHP no es apto para proyectos a gran escala Una aplicación PHP no es mantenible Symfony Consola PHP genera proyectos ‘basura’ Symfony Sistema de configuración Referencias, Créditos y Licencia
  4. 4. Y llegan los detractores Symfony David J. Brenes Martínez Introducing Symfony PHP es un lenguaje pobre MVC en Symfony PHP no es apto para proyectos a gran escala Una aplicación PHP no es mantenible Symfony Consola PHP genera proyectos ‘basura’ Symfony Sistema de configuración Referencias, Créditos y Licencia
  5. 5. Primera ley de la informática Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Muéstrame a alguien que programe mal en PHP y te Una aplicación mostraré a alguien que programa mal. Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  6. 6. Segunda ley de la informática Symfony David J. Brenes Martínez Todo escala Introducing Symfony MVC en Symfony Facebook Una Tuenti aplicación Symfony Yahoo! Consola Symfony ... Sistema de configuración Pero hay que hacerlo bien Referencias, Créditos y Licencia
  7. 7. La llegada de los frameworks Symfony David J. Brenes Martínez Introducing Symfony Desarrollo web menos ad-hoc MVC en Symfony Popularización de patrones de diseño, buenas Una prácticas. . . aplicación Symfony Incremento de exigencia en desarrollo web Consola Symfony Aparición de soluciones avanzadas Sistema de configuración Referencias, Créditos y Licencia
  8. 8. La llegada de los frameworks Symfony David J. Brenes Martínez Introducing Symfony Struts MVC en Symfony Zend Una CakePHP aplicación Symfony Spring Consola Symfony Ruby on Rails Sistema de configuración Referencias, Créditos y Licencia
  9. 9. La llegada de Symfony Symfony David J. Brenes Martínez Introducing Symfony MVC en Proyecto comercial de SensioLabs (Sensio Framework) Symfony Una Liberación e inicio del proyecto Symfony en 2005 aplicación Symfony 1 año más tarde que Rails Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  10. 10. Inspiración Symfony David J. Brenes Martínez Introducing Basado en conceptos de otros frameworks (Rails, Symfony MVC en Spring, Django. . . ) Symfony Actualmente comparte características con otros Una aplicación frameworks (Rails) Symfony Consola Uso de otros proyectos PHP (Propel, Doctrine, Symfony PHPUnit. . . ) Sistema de configuración Referencias, Créditos y Licencia
  11. 11. Proyectos Symfony David J. Brenes Martínez Introducing Symfony MVC en Yahoo! Bookmarks Symfony Una Delicious aplicación Symfony DailyMotion Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  12. 12. Componentes Symfony David J. Brenes Martínez Bibliotecas nacidas del core de Symfony Introducing Symfony Usables en cualquier otro proyecto de maner directa MVC en Symfony Parseador de YAML Una aplicación Manejador de eventos Symfony Gestor de dependencias Consola Symfony Sistema de plantillas Sistema de configuración Gestor de peticiones Referencias, Créditos y Licencia
  13. 13. MVC en Symfony Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Una aplicación Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  14. 14. MVC en Symfony Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Una aplicación Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  15. 15. Controlador Symfony David J. Brenes Martínez Introducing Symfony 1 Servidor Web captura la petición MVC en Symfony 2 La redirige al punto de entrada (index.php) con Una parámetros aplicación Symfony 3 index.php inicia el controlador Consola Symfony 4 El controlador decide a qué acción corresponde la ruta Sistema de configuración Referencias, Créditos y Licencia
  16. 16. Modelo Symfony David J. Brenes Martínez Introducing Symfony 1 La acción (controlador) solicita unos datos al modelo MVC en Symfony 2 La acción realiza modificaciones al modelo Una 3 El modelo persiste esas modificaciones si la acción lo aplicación Symfony solicita Consola Symfony 4 La acción pasa esos del modelo a la vista Sistema de configuración Referencias, Créditos y Licencia
  17. 17. Vista Symfony David J. Brenes Martínez Introducing 1 La vista no tiene lógica de proceso Symfony MVC en 2 Solo genera HTML en base a los datos que recibe Symfony Una 3 La acción decide que vista se genera y con qué aplicación Symfony parámetros Consola 4 Una vez que la vista termina, el controlador le devuelve Symfony el resultado Sistema de configuración Referencias, Créditos y Licencia
  18. 18. Descarguemos Symfony Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Una www.symfony-project.org aplicación Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  19. 19. Directorios Symfony David J. apps: Un directorio para cada aplicación posible dentro Brenes Martínez de Symfony Introducing cache: Ficheros para la caché Symfony config: Ficheros de configuración MVC en Symfony data: Ficheros de datos variados como fixtures Una aplicación lib: Ficheros de código global a las aplicaciones (el Symfony Consola modelo, software ajeno a Symfony. . . ) Symfony log: Ficheros de log Sistema de configuración plugins: Plugins añadidos a Symfony Referencias, Créditos y tests: Suite de tests de la aplicación Licencia web: Carpeta pública
  20. 20. Aplicaciones Symfony David J. Brenes Martínez Introducing Symfony permite tener conviviendo varias aplicaciones Symfony en un proyecto MVC en Symfony Aplicaciones que comparten modelo, base de usuarios, Una etc. aplicación Symfony Ejemplo típico: Frontend / Backend / API Consola Symfony Aplicaciones independientes (incluso dominios Sistema de distintos) configuración Referencias, Créditos y Licencia
  21. 21. Módulos Symfony David J. Brenes Martínez Introducing Symfony Cada aplicación tiene varios módulos MVC en Symfony Los módulos permiten separar aspectos de la Una aplicación aplicación Symfony Cada módulo puede tener configuracion diferente Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  22. 22. Lib Symfony David J. Brenes Martínez Introducing Symfony model: El código del modelo (VOs, DAOs y MVC en Formularios) Symfony Una helpers: conjunto de funciones de ayuda aplicación Symfony vendor: Codigo ajeno al framework (o el propio Consola Symfony framework) Sistema de configuración Referencias, Créditos y Licencia
  23. 23. Plugins Symfony David J. Brenes Martínez Introducing Symfony Miniaplicaciones autocontenidas. MVC en Symfony Su propia configuración, sus propios modelos. Una aplicación Se mantienen en repositorios aparte (análogo a las Symfony gemas de Rails) Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  24. 24. Web Symfony David J. Brenes Martínez Introducing Symfony Única carpeta que debería tener acceso público. MVC en Symfony Contiene los entornos de las aplicaciones Una aplicación index.php: Entorno por defecto para la aplicación por Symfony Consola defecto Symfony Sistema de configuración Referencias, Créditos y Licencia
  25. 25. Despliegue Symfony David J. Brenes Martínez Introducing Symfony Apuntar en Apache a la carpeta web MVC en Symfony Copiar carpeta /lib/vendor/symfony/data/web/sf a la Una carpeta web aplicación Symfony Visitar entorno de producción Consola Symfony Visitar entorno de depuración Sistema de configuración Referencias, Créditos y Licencia
  26. 26. Prueba rápida Symfony David J. Brenes Martínez Introducing Symfony Descargar schema.yml MVC en Symfony Descargar databases.yml Una aplicación Activar driver MySQL (extension=php_pdo_mysql.dll) Symfony Consola Unas cuantas tareas Symfony Sistema de configuración Referencias, Créditos y Licencia
  27. 27. No solo una aplicación web Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony.bat en el raiz Symfony Una Consola de órdenes para Symfony aplicación Symfony Automatización de tareas Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  28. 28. Tareas del proyecto Symfony David J. Brenes Martínez Introducing Symfony MVC en Generar aplicaciones Symfony Una Generar módulos aplicación Symfony Generar otro proyecto Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  29. 29. Tareas del modelo Symfony David J. Brenes Martínez Introducing Symfony MVC en Gestionar BD Symfony Una Cargar datos de prueba aplicación Symfony Manejar el modelo Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  30. 30. Tareas de plugins Symfony David J. Brenes Martínez Introducing Symfony MVC en Listar Symfony Una Instalar plugins nuevos aplicación Symfony Actualizar Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  31. 31. Tarea de caché Symfony David J. Brenes Martínez Introducing symfony cache:clear Symfony MVC en Symfony dispone de caché Symfony Se cachean cosas importantes (configuración, vistas, Una aplicación modelos. . . ) Symfony Consola En entorno de producción la caché es más agresiva Symfony Si algo nocambia, cache:clear Sistema de configuración Referencias, Créditos y Licencia
  32. 32. ¿Configuration over convention? Symfony David J. Brenes Martínez Introducing Symfony Convention over configuration: Uso de convenciones MVC en para evitar configuraciones explícitas Symfony Una Menos cantidad de trabajo aplicación Symfony Más magia y potencia Consola Symfony Más necesidad de memoria Sistema de configuración Referencias, Créditos y Licencia
  33. 33. ¿Configuration over convention? Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony confia más en ficheros de configuración Symfony Una PHP es menos flexible que Ruby aplicación Symfony PHP permite menos magia Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  34. 34. YAML: YAML Ain’t Markup Language Symfony David J. Brenes Martínez Introducing Symfony Formato de representación de datos alternativo a XML MVC en Symfony y JSON Una aplicación Basado en espacios para indentar configuraciones Symfony Formato muy legible y sencillo Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  35. 35. YAML en Symfony Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Todos los ficheros de configuración son YAML Una aplicación Componente de Symfony para parseo de YAML Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  36. 36. Niveles de configuración Symfony David J. Brenes Martínez Introducing Symfony Configuración de Symfony MVC en Symfony Configuración de Plugins Una Configración de proyecto aplicación Symfony Configuración de aplicación Consola Symfony Configuracion de módulo Sistema de configuración Referencias, Créditos y Licencia
  37. 37. Entornos de configuración Symfony David J. Brenes Martínez Introducing Symfony MVC en Configuración específica para entornos de desarrollo, Symfony producción y test Una aplicación Symfony Permiten cambiar de entorno a placer Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  38. 38. Settings.yml Symfony David J. Brenes Martínez Introducing Symfony Cuestiones generales sobre el proyecto y las MVC en aplicaciones Symfony Una Codificación de caracteres aplicación Symfony Cuestiones de seguridad Consola Symfony Páginas de error Sistema de configuración Referencias, Créditos y Licencia
  39. 39. Factories.yml Symfony David J. Brenes Martínez Introducing Symfony Configuración para objetos necesitados por el MVC en framework (caché, i18n. . . ) Symfony Permite cargar objetos en el core de Symfony Una aplicación cambiando el comportamiento Symfony Consola Ejemplos: Nuevos sistemas de caché, i18n en Base de Symfony Datos. . . Sistema de configuración Referencias, Créditos y Licencia
  40. 40. Databases.yml Symfony David J. Brenes Martínez Introducing Symfony MVC en Define la configuración de conexion a BD Symfony Una Permite definir conexiones diferentes para cada aplicación Symfony entorno Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  41. 41. Security.yml Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Define aspectos más concretos de seguridad Una aplicación Permite asegurar acciones en concreto Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  42. 42. Security.yml Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Define aspectos más concretos de seguridad Una aplicación Permite asegurar acciones en concreto Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  43. 43. Routing.yml Symfony David J. Brenes Martínez Introducing Symfony MVC en Configura el sistema de rutas Symfony Una La configuración va en cascada. La primera ruta que aplicación Symfony coincide es la que se usa. Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  44. 44. App.yml Symfony David J. Brenes Martínez Introducing Symfony Configuración específica de una aplicación MVC en Symfony Permite definir parámetros propios Una aplicación Usado por los plugins para definir su propia Symfony configuración Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  45. 45. filters.yml Symfony David J. Brenes Martínez Introducing Symfony MVC en Define los filtros por los que debe pasar la Request Symfony para ecutarse Una aplicación Symfony Permite pasar parámetros a los filtros Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  46. 46. view.yml Symfony David J. Brenes Martínez Introducing Symfony MVC en Define la configuracion de las vistas Symfony Una Permite cargar CSS, JS, definir elementos meta, títulos aplicación Symfony de página. . . Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  47. 47. Referencias Symfony David J. Brenes Martínez Symfony Project: www.symfony-project.org Introducing Symfony The Symfony Reference Book: http://www. MVC en symfony-project.org/reference/1_4/en/ Symfony Una Practical Symfony: aplicación Symfony http://www.symfony-project.org/jobeet/1_ Consola 4/Doctrine/en/ Symfony Sistema de The Definitive Guide to symfony: configuración http://www.symfony-project.org/book/1_2/ Referencias, Créditos y Licencia
  48. 48. Créditos Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony La imagen de MVC está sacada de Practical Symfony Una aplicación Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  49. 49. Licencia Symfony David J. Brenes Martínez Estas transparencias se publican bajo licencia Creative Introducing Commons y se pueden redistribuir o modificar bajo las Symfony MVC en siguientes condiciones: Symfony Se dé reconocimiento al autor de estas transparencias. Una aplicación Symfony No se use con propósitos comerciales. Consola Se distribuya con la misma licencia. Symfony Sistema de Texto de la licencia: http: configuración //creativecommons.org/licenses/by-nc-sa/3.0/ Referencias, Créditos y Licencia

×