Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introducción a Symfony

Introducción a Symfony: instalación, configuración y "Hello World"

  • Login to see the comments

  • Be the first to like this

Introducción a Symfony

  1. 1. Symfony Introducción, estructura y ‘Hello world’ @marcossegovia
  2. 2. Esto de qué va? Un poco de wiki - Fabien Potencier - Primera versión, Octubre 2005 - Symfony 2.0 RC1, 24 Junio 2011 FYI: S de Sensio + F de Framework -> Symfony
  3. 3. Qué es Symfony, entonces? Symfony es un framework escrito en Php Pero Symfony también es un conjunto de componentes Su integración con Bundles y los convenios (PSR) es un WIN Sin mencionar que tiene una comunidad BRUTAL Y todo free
  4. 4. Contributions Sifo 5 commits Laravel 50 commits Symfony 50 commits 549 commits 4811 commits 26051 commits
  5. 5. Contributions FYI CakePhp 50 commits 29665 commits
  6. 6. Symfony, popular? Full-stack-framework o components Bundles, bundles y más bundles Integridad nativa con muchos otros Open-Source: Doctrine, Monolog… Primer framework en traernos el Dependency Injection Container. (Y basar su arquitectura en él.)
  7. 7. Instalación Instalamos Symfony-cli en nuestro Mac: $ sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony $ sudo chmod a+x /usr/local/bin/symfony $ symfony new jelly_time_project
 $ php bin/console server:start
  8. 8. jelly_time_project/app - app/config : declaración de servicios, variables de entorno, rutas… - app/Resources : assets/ utils, translation files, templates
  9. 9. app/AppKernel.php Mother of dragons config_dev.yml config_prod.yml config.yml services.yml parameters.yml + parameters_redefinidos servicios_redefinidosrouting.yml
  10. 10. jelly_time_project/bin Solo hay una cosa mejor que el plugin de Symfony
 y eso es la consola. $ bin/console $ bin/symfony_requirements
  11. 11. jelly_time_project/src Wait, Bundle? …
 más en el el próximo workshop
  12. 12. app/AppKernel.php DEV PROD
  13. 13. jelly_time_project/tests Tests de la aplicación no encapsulados en Bundles.
 Ejemplo: Tests de integración/funcionales entre Bundles.
  14. 14. jelly_time_project/tests FrameworkBundleTest Proxy de Symfony para testear funcionalmente con PhpUnit Ya tenemos Behat para eso ;)
  15. 15. jelly_time_project/var Compilados de Twig, caché de Doctrine, profiling, logs de la aplicación, utils para los binarios…
  16. 16. jelly_time_project/web Estáticos y public: css, js, images… Boostrap de la app app.php es el index.php para PROD app_dev.php es el index.php para DEV
  17. 17. Controllers
  18. 18. AppBundleController Routing Annotations File Definitions (yaml, xml, php)
  19. 19. Annotations app/config/routing.yml Path donde definiremos los controllers Comodidad y agilidad Descentralización y demasiada magia en los controllers
  20. 20. Annotations A nivel de método OJO !
  21. 21. Annotations A nivel de clase
  22. 22. Definición en ficheros Centralización de los ficheros Yml, fácil lectura (porque XML y Php…) Los controllers dejan de tener la responsabilidad de enrutar
  23. 23. Definición en ficheros (Yml) app/config/routing.yml plugin FTW !
  24. 24. Bonus: Yml + Annotations app/config/routing.yml Y lo mejor, es que funciona.
  25. 25. Yo, soy programador php bin/console server:start bin/console debug:router
  26. 26. – Dijo alguien “Entonces, Jacemos un workshop o qué?”
  27. 27. Os reto a… Crear un nuevo proyecto Symfony En el propio AppBundle, crear un nuevo Controller mediante annotations: Devolver una Response `Hello World` Devolver una Response con un Twig Template con un `Hello World` Hacer lo anterior, pero esta vez definiendo las rutas con yaml
  28. 28. Esto es solo el principio… AKKA la puntita PREGUNTAS?

×