SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Introducción a Symfony2
          PHP


       Frameworks
¿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
Protocolo http ~ https
200-Ok ~ 404-Not found ~ 500-Internal server error
My first webpage
¡¡¡Yo uso flat PHP!!!
http://www.miweb.com/index.php?modulo=contacta&op=enviar
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
¿El estado de PHP es el ideal?
¡NO!
¡PHP puede ser un lío!   ¡Por tu culpa!
¡¡¡Frameworks al rescate!!!
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
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/
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
Symfony2 según Fabien Potencier

• “Symfony2   is a reusable set of standalone,
 decoupled, and cohesive PHP components
 that solve common web development
 problems”. ~ Fabien Potencier




http://fabien.potencier.org/article/49/what-is-symfony2
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
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
¿Qué es un bundle?
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.
¿Qué contiene un bundle?
• Controller   ~ Command

• Entity   ~ Repository

• Form

• Resources

• Test

• DependencyInjection
¿Empezamos con Symfony2?
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
http://www.tiendademusica.com/show.php?artist=123&album=123
http://www.tiendademusica.com/artista/el-fari/grandes-exitos
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
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
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.
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
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
Symfony2: Doctrine

•3   componentes independientes

• Doctrine    common

• Doctrine    DBAL

• Doctrine    ORM

• Integrado   como un Bundle Doctrine2Bundle
Symfony2: Doctrine

       • Doctrine   genera las Entities

       • Doctrine   YML/XML/PHP/Anntotations

       • Doctrine   integra relaciones

       • EntityManager   punto de acceso único ORM

       • Queries   complejas DQL QueryBuilder
Symfony2: Flow
¿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
Introducción a Symfony2
                  Agradecimientos
César Suárez ~ Buen amigo ~ @tharandur
Neosistec que me ha permitido crear PizzaNight
Javier Eguiluz ~ Creador libro Symfony2 Español ~ @javiereguiluz
Toda la comunidad DeSymfony
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
Introducción a Symfony2
               ¿Preguntas?


                     No seas tímido


@aferrandini
Introducción a Symfony2

               ¡Muchas gracias!



@aferrandini

Más contenido relacionado

Destacado

Proyecto regadío vegas bajas
Proyecto regadío vegas bajasProyecto regadío vegas bajas
Proyecto regadío vegas bajas
ppmarmolejo
 
10 große fehler bei der niederlassung
10 große fehler bei der niederlassung10 große fehler bei der niederlassung
10 große fehler bei der niederlassung
Micha Brex
 
Outcomes 1 elementary_vb
Outcomes 1 elementary_vbOutcomes 1 elementary_vb
Outcomes 1 elementary_vb
Valero Jose
 
Nourrir la planète en 2030 2050
Nourrir la planète en 2030 2050Nourrir la planète en 2030 2050
Nourrir la planète en 2030 2050
QSEC
 

Destacado (20)

Smarter Marketing for Better Results - Michael Berger
Smarter Marketing for Better Results - Michael BergerSmarter Marketing for Better Results - Michael Berger
Smarter Marketing for Better Results - Michael Berger
 
Roma consulting uk rev16
Roma consulting uk rev16Roma consulting uk rev16
Roma consulting uk rev16
 
Proyecto regadío vegas bajas
Proyecto regadío vegas bajasProyecto regadío vegas bajas
Proyecto regadío vegas bajas
 
Conrad McRae
Conrad McRaeConrad McRae
Conrad McRae
 
10 große fehler bei der niederlassung
10 große fehler bei der niederlassung10 große fehler bei der niederlassung
10 große fehler bei der niederlassung
 
Bondia Lleida 30082011
Bondia Lleida 30082011Bondia Lleida 30082011
Bondia Lleida 30082011
 
Tiburones krd
Tiburones krdTiburones krd
Tiburones krd
 
Silabo mundologia
Silabo mundologia Silabo mundologia
Silabo mundologia
 
Encontrar a informação na Biblioteca do DARQ
Encontrar a informação na Biblioteca do DARQEncontrar a informação na Biblioteca do DARQ
Encontrar a informação na Biblioteca do DARQ
 
Business Voice August 2011
Business Voice August 2011Business Voice August 2011
Business Voice August 2011
 
Comic Zeal : La mejor aplicación para leer comic en IPad
Comic Zeal : La mejor aplicación para leer comic en IPadComic Zeal : La mejor aplicación para leer comic en IPad
Comic Zeal : La mejor aplicación para leer comic en IPad
 
IPMS experience sharing workshop: Cattle fattening group report
IPMS experience sharing workshop: Cattle fattening group reportIPMS experience sharing workshop: Cattle fattening group report
IPMS experience sharing workshop: Cattle fattening group report
 
Aeonex Group: Portfolio
Aeonex Group: PortfolioAeonex Group: Portfolio
Aeonex Group: Portfolio
 
Drones yuneec baratos oferta
Drones yuneec baratos ofertaDrones yuneec baratos oferta
Drones yuneec baratos oferta
 
Outcomes 1 elementary_vb
Outcomes 1 elementary_vbOutcomes 1 elementary_vb
Outcomes 1 elementary_vb
 
Mantenimiento y mejora del S.A.C ISO 90012008 en el CC-GMM
Mantenimiento y mejora del S.A.C ISO 90012008 en el CC-GMMMantenimiento y mejora del S.A.C ISO 90012008 en el CC-GMM
Mantenimiento y mejora del S.A.C ISO 90012008 en el CC-GMM
 
Nourrir la planète en 2030 2050
Nourrir la planète en 2030 2050Nourrir la planète en 2030 2050
Nourrir la planète en 2030 2050
 
European Communication Monitor 2008 - ECM 2008 - Results
European Communication Monitor 2008 - ECM 2008 - ResultsEuropean Communication Monitor 2008 - ECM 2008 - Results
European Communication Monitor 2008 - ECM 2008 - Results
 
Reseña historica del Pauji San felipe estado yaracuy
Reseña historica del Pauji San felipe estado yaracuyReseña historica del Pauji San felipe estado yaracuy
Reseña historica del Pauji San felipe estado yaracuy
 
Cartilla final[1]
Cartilla final[1]Cartilla final[1]
Cartilla final[1]
 

Similar a Introducción a Symfony2 (8)

Opinión documentada
Opinión documentadaOpinión documentada
Opinión documentada
 
Poet Software: The All-in-One Brand Book
Poet Software: The All-in-One Brand BookPoet Software: The All-in-One Brand Book
Poet Software: The All-in-One Brand Book
 
Moodle 1.9 Configuración del curso
Moodle 1.9  Configuración del cursoMoodle 1.9  Configuración del curso
Moodle 1.9 Configuración del curso
 
Equipo n° 6
Equipo n° 6Equipo n° 6
Equipo n° 6
 
Equipo n° 6
Equipo n° 6Equipo n° 6
Equipo n° 6
 
Equipo n° 6
Equipo n° 6Equipo n° 6
Equipo n° 6
 
Prueba única de informática anderson cardona
Prueba única de informática anderson cardonaPrueba única de informática anderson cardona
Prueba única de informática anderson cardona
 
Prueba única de informática anderson cardona
Prueba única de informática anderson cardonaPrueba única de informática anderson cardona
Prueba única de informática anderson cardona
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (15)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

Introducción a Symfony2

  • 1. Introducción a Symfony2 PHP Frameworks
  • 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. Protocolo http ~ https 200-Ok ~ 404-Not found ~ 500-Internal server error
  • 5. ¡¡¡Yo uso flat PHP!!! http://www.miweb.com/index.php?modulo=contacta&op=enviar
  • 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. ¿El estado de PHP es el ideal?
  • 9. ¡PHP puede ser un lío! ¡Por tu culpa!
  • 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. 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. 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. Symfony2 según Fabien Potencier • “Symfony2 is a reusable set of standalone, decoupled, and cohesive PHP components that solve common web development problems”. ~ Fabien Potencier http://fabien.potencier.org/article/49/what-is-symfony2
  • 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. 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. ¿Qué es un bundle?
  • 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. ¿Qué contiene un bundle? • Controller ~ Command • Entity ~ Repository • Form • Resources • Test • DependencyInjection
  • 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
  • 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. 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. 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. 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. 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. Symfony2: Doctrine •3 componentes independientes • Doctrine common • Doctrine DBAL • Doctrine ORM • Integrado como un Bundle Doctrine2Bundle
  • 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
  • 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. Introducción a Symfony2 Agradecimientos César Suárez ~ Buen amigo ~ @tharandur Neosistec que me ha permitido crear PizzaNight Javier Eguiluz ~ Creador libro Symfony2 Español ~ @javiereguiluz Toda la comunidad DeSymfony
  • 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. Introducción a Symfony2 ¿Preguntas? No seas tímido @aferrandini
  • 36. Introducción a Symfony2 ¡Muchas gracias! @aferrandini