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 Symfony2

2,588 views

Published on

Introducción al framework de PHP Symfony2 en el evento PizzaNight en Neosistec

Published in: Technology
  • Be the first to comment

Introducción a Symfony2

  1. 1. Introducción a Symfony2 PHP Frameworks
  2. 2. ¿QUIÉN SOY?• Ariel Ferrandini (11-11-1985)• Técnico superior en Administración de Sistemas Informáticos (FP)• Estudiante de adaptación a Grado de Ingeniería Informática• Trabajando en Neosistec desde 2006 ~ Head del equipo WEB• Me gusta programar, la pizza, la tecnología y publicar código! (Github)• Trabajando con Symfony desde 0.9.4beta
  3. 3. Protocolo http ~ https200-Ok ~ 404-Not found ~ 500-Internal server error
  4. 4. My first webpage
  5. 5. ¡¡¡Yo uso flat PHP!!!http://www.miweb.com/index.php?modulo=contacta&op=enviar
  6. 6. Todo evoluciona• Evolución de PHP: • 1.0 ~ Rasmus Lerdorf (1994) • 3.0 ~ A.G. & Z.S. (1997) • 4.0 ~ 2000 • 5.0 ~ 2004 • 5.3 ~ 2011
  7. 7. ¿El estado de PHP es el ideal?
  8. 8. ¡NO!
  9. 9. ¡PHP puede ser un lío! ¡Por tu culpa!
  10. 10. ¡¡¡Frameworks al rescate!!!
  11. 11. Symfony2 es un framework• Routing • Internacionalización• Sistema de plantillas • Envío de correos• Gestión de formularios • Gestión de “assets”• Gestión de base de datos • Sistema de logs• Sistema de caché • Test unitarios• Sistema de validación • Contenedor de servicios• Gestión de seguridad • Ayuda para depuración 2,9 MB
  12. 12. Symfony2 es rápido• 20% más rápido que Solar 1.0.0beta3 ¡Es muy rápido!• 60% más rápido que Lithium 0.6• 75% más rápido que Yii 1.1.1•2 veces más rápido que symfony 1.4.2• 3.5 veces más rápido que Zend 1.10• 5.5 veces más rápido que CakePHP 1.2.6• 69 veces más rápido que Flow3 1.0.0alpha7• http://blog.newitfarmer.com/php/framework-php/1904/symfony2-performs-betterbetter-performance/
  13. 13. Symfony2 es seguro• Enenero de 2011, SektionEins realizó una ¡Es muy seguro! auditoría de seguridad ~ Versión beta• Solo 8 bugs de seguridad mínima• Ya están solucionados• http://symfony.com/blog/symfony2-security-audit
  14. 14. Symfony2 según Fabien Potencier• “Symfony2 is a reusable set of standalone, decoupled, and cohesive PHP components that solve common web development problems”. ~ Fabien Potencierhttp://fabien.potencier.org/article/49/what-is-symfony2
  15. 15. Symfony2 está construido con bundles DependencyInjection el ne Con rn ctri Ke Se Yam g tp cu fig Do in Ht l t r ity ou sole Fin R on Va de C r ade lida Htt r pFo Fo ing tio sLo u nda rm plat her n tion em is patc s T entD Cla Ev
  16. 16. Symfony2 está construido con bundles tpccyInjection Htt in g r Fo platchg r e Dependen tr der l F nd at n e ne SeVali pFom i Yaiiumt le Ke in Cu dnti D srm e peo Do oa coa o Ev T nd u ion ent nslrat o HtssL rit fig C o R y Cla n
  17. 17. ¿Qué es un bundle?
  18. 18. Definición de bundle •A bundle, is a directory containing a set of files (PHP files, stylesheets, JavaScript, images, etc...), that implement a single feature (a blog, a forum, etc...). In Symfony2 (almost) everything lives inside a bundle.
  19. 19. ¿Qué contiene un bundle?• Controller ~ Command• Entity ~ Repository• Form• Resources• Test• DependencyInjection
  20. 20. ¿Empezamos con Symfony2?
  21. 21. Symfony2: Routing• Localizar a partir de la URL la acción que se tiene que ejecutar (Controller)• Poner nombres a las rutas para cambiarlas en un solo lugar• Rutas más legibles y fáciles de memorizar• Mejora el SEO• Uso de anotaciones
  22. 22. http://www.tiendademusica.com/show.php?artist=123&album=123
  23. 23. http://www.tiendademusica.com/artista/el-fari/grandes-exitos
  24. 24. Symfony2: Controller• El Controller es la C del patrón MVC• Contiene las acciones que se deben ejecutar dependiendo de la ruta• Pasar parámetros a las vistas• Generar directamente la respuesta
  25. 25. Symfony2: Vistas ~ Twig• Es lo que ve el usuario final• Generalmente existe una vista para cada acción• Separan la presentación del negocio• Reciben los parámetros de las acciones• Symfony2 integra el lenguaje de plantillas Twig• Son la V del patrón MVC http://twig.sensiolabs.org
  26. 26. Symfony2: Twig• echo ~ {{ user.name }}• Herencia: {% extends %}• Filtros: {{ user.date|date(‘d/m/Y’) }}• Funciones: {{ myHelloWorld(“Ariel”) }}• Macros: {{ import “helper.html” as helper }}• Muy rápido. Las plantillas se precompilan a PHP.
  27. 27. Symfony2: Twig• Twig está lleno de utilidades. Twig tiene for .. else ..• Twig es flexible• Twig es extensible• Twig es rápido• Twig es seguro• Twig viene por defecto en Symfony2
  28. 28. Symfony2: Modelo ~ Doctrine• Nos permite interactuar con la base de datos• No es necesario saber SQL• Generador de Entities y Repositories• Totalmente nuevo respecto a Doctrine1 http://www.doctrine-project.org• Symfony2 integra Doctrine por defecto• Es la M del patrón MVC
  29. 29. Symfony2: Doctrine•3 componentes independientes• Doctrine common• Doctrine DBAL• Doctrine ORM• Integrado como un Bundle Doctrine2Bundle
  30. 30. Symfony2: Doctrine • Doctrine genera las Entities • Doctrine YML/XML/PHP/Anntotations • Doctrine integra relaciones • EntityManager punto de acceso único ORM • Queries complejas DQL QueryBuilder
  31. 31. Symfony2: Flow
  32. 32. ¿Cómo instalar Symfony2?• http://www.symfony.com• Download Now ~ SF2 SE .zip/.tgz• Descomprime en tu carpeta de Apache• Configuración config.php• Prueba el AcmeDemoBundle
  33. 33. Introducción a Symfony2 AgradecimientosCésar Suárez ~ Buen amigo ~ @tharandurNeosistec que me ha permitido crear PizzaNightJavier Eguiluz ~ Creador libro Symfony2 Español ~ @javiereguiluzToda la comunidad DeSymfony
  34. 34. Siguientes pasos con Symfony2 Desarrollo web ágil con Symfony2 el primer libro del mundo publicado sobre Symfony2 http://www.symfony.es http://www.symfony.com
  35. 35. Introducción a Symfony2 ¿Preguntas? No seas tímido@aferrandini
  36. 36. Introducción a Symfony2 ¡Muchas gracias!@aferrandini

×