SlideShare una empresa de Scribd logo
1 de 18
[1] 
[1] 
Twittea este evento con el hashtag #eventosiebs
[2] 
[2] 
Symfony2. Máxima productividad 
en desarrollo web 
Twittea este evento con el hashtag #eventosiebs
[3] 
[3] 
Symfony2 – Requisitos previos 
Tener conocimientos de los siguientes temas 
•HTML5 
•CSS / CSS3 
•PHP 
•Programación orientada a objetos (POO) 
Twittea este evento con el hashtag #eventosiebs
[4] 
[4] 
Symfony2 - Objetivos 
• Entender el comportamiento de Symfony2 basado en el patrón MVC. 
• Instalar un proyecto completo de Symfony2. 
• Crear rutas, controladores y vistas para desarrollar sitios web. 
• Crear entidades para la persistencia de datos en bases de datos MySQL. 
• Crear repositorios para extender la lógica de negocio de nuestro proyecto. 
• Crear formularios para la interación entre usuario y la aplicación. 
• Dotar a la aplicación de sistemas de seguridad sobre accesos y permisos 
de los usuarios. 
• Insertar en nuestras aplicaciones bundles externos. 
Twittea este evento con el hashtag #eventosiebs
[5] 
[5] 
Symfony2 
• Es un framework basado en PHP 
• Responde al patrón Modelo – Vista – Controlador (MVC) 
• Está formado por muchos componentes independientes. 
• Podemos crear nuestros propios bundles. 
• Podemos instalar bundles externos. 
• Podemos trabajar en varios formatos. 
• Usa Doctrine como ORM. 
• Usa plantillas Twig. 
• Gestiona formularios, login, seguridad fácilmente desde configuración. 
Twittea este evento con el hashtag #eventosiebs
[6] 
[6] 
Symfony2 - MVC 
• El usuario hace una petición url. (http://www.....) 
• El controlador frontal busca en el Routing (archivo de rutas) cuál es el 
controlador que se encargará de atender a esa petición y lo ejecuta. 
• El controlador genera la información necesaria para responder a la 
petición y se lo pasa a la vista. 
• La vista renderiza toda la información y la muestra al usuario en su 
Twittea este evento con el hashtag #eventosiebs 
navegador.
[7] 
[7] 
Symfony2 – Varios formatos 
• Podemos trabajar en distinto formatos como 
PHP, anotaciones, YAML, plantillas Twig 
Twittea este evento con el hashtag #eventosiebs
[8] 
[8] 
Symfony2 - Routing 
• Se establece un nombre de ruta, un patrón 
que debe cumplir esta y el controlador que se 
hará cargo de la petición. 
Twittea este evento con el hashtag #eventosiebs 
# app/config/routing.yml 
pagina_ayuda: 
path: /ayuda 
defaults: { _controller: OfertaBundle:Default:ayuda }
[9] 
[9] 
Symfony - Bundles 
• Los bundles son funcionalidades completas agrupadas en un mismo 
paquete 
• Similar a los plugins de WordPress 
• Podemos configurar los nuestros propios o usar bundles externos que 
sabemos funcionan correctamente 
• Existe abundante información sobre bundles que ya podemos incorporar 
a nuestros proyectos así como la fiabilidad y mantenimiento de los 
mismos 
Twittea este evento con el hashtag #eventosiebs
[10] 
[10] 
Symfony - Seguridad 
• El framework gestiona el login de los usuarios (autenticación). 
• También gestiona los derechos de acceso de los usuarios (autorización) 
Twittea este evento con el hashtag #eventosiebs 
Imagen del libro oficial
[11] 
[11] 
Symfony - Formularios 
• Symfony también lleva a cabo la gestión de 
formularios vinculando estos a los modelos 
que hayamos generado. 
• Esto permite grabar los datos de forma fácil 
así como validarlos y obtener mensajes de 
error 
Twittea este evento con el hashtag #eventosiebs
[12] 
[12] 
Symfony - Doctrine 
• Doctrine no pertenece al proyecto Symfony. Es un componente externo. 
• Doctrine es un mapeador ORM que permite obtener los datos de una 
base de datos relacional y los entrega como objetos. 
• También al contrario, partiendo de objetos, grabar la información en 
bases de datos relacionales. 
• Permite crear la base de datos, las tablas y las modificaciones de estas 
desde órdenes de consola sin tener que recurrir a phpMyAdmin 
• Gestiona las asociaciones existentes entre los objetos de nuestro modelo 
Twittea este evento con el hashtag #eventosiebs 
a nivel de tablas. 
• Gestiona transacciones.
[13] 
[13] 
Symfony - Modelo 
• Creamos las clases que representan a los 
objetos de la aplicación. 
• En estas mismas clases definimos la validación 
de los campos así como las relaciones que se 
establecen entre los objetos 
Twittea este evento con el hashtag #eventosiebs
[14] 
[14] 
Symfony2 - Repositorios 
• Cada clase del modelo tiene asociada su 
propia clase de repositorio. 
• Esto permite mantener al modelo lo más 
simple posible. 
• Los repositorios contienen la lógica de la 
aplicación y contienen los métodos necesarios 
para ello. 
Twittea este evento con el hashtag #eventosiebs
[15] 
[15] 
Symfony - Plantillas 
• Usa de Twig como motor para renderizar las 
plantillas 
• Las plantillas pueden heredar unas de otras, lo 
que nos permite varios niveles de herencia 
• Son fáciles de crear y mantener lo que no 
permite separar fácilmente diseño y modelo 
• Podemos ejecutar directamente 
controladores 
Twittea este evento con el hashtag #eventosiebs
[16] 
[16] 
Symfony - Productividad 
• Resuelve fácilmente tareas rutinarias de cualquier aplicación como login, 
formularios, seguridad etc. 
• Permite crear funcionalidades completas (bundles) que pueden ser 
reutilizadas en otras aplicaciones. 
• Permite usar bundles de terceros sobre funcionalidades que ya están 
probadas. 
• Permite la herencia en plantillas Twig facilitando el diseño de las páginas. 
• Resuelve fácilmente el tema la persistencia a bases de datos relacionales 
desde objetos mediante el ORM Doctrine. 
• Permite realizar la instalación y mantener las dependencias entre los 
componentes mediante Composer 
Twittea este evento con el hashtag #eventosiebs
[17] 
[17] 
Symfony - Resumen 
• Flexibilidad en la configuración ya que podemos usar (o no) todos sus 
componentes. 
• Código fácilmente reutilizable mediante bundles propios y de terceros. 
• Diseño fácilmente adaptable mediante plantillas Twig. 
• Fácil configuración de la persistencia entre objetos y base de datos 
mediante Doctrine. 
• Fácil configuración de la seguridad de la aplicación. Desde el login del 
usuario hasta la acreditación de los mismo para acceder a según qué 
zonas de la aplicación 
• Fácil configuración de la creación de formularios mediante asignación 
Twittea este evento con el hashtag #eventosiebs 
directa a una clase del modelo.
[18] 
[18] 
¡Gracias! 
Twittea este evento con el hashtag #eventosiebs

Más contenido relacionado

Similar a Symfony2 un framework para maximizar tu productividad en desarrollo web

Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosJaziel Torres
 
Gestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterGestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterandrewzg
 
Construyendo RIA con Silverlight 2
Construyendo RIA con Silverlight 2Construyendo RIA con Silverlight 2
Construyendo RIA con Silverlight 2Christian Strevel
 
Silex para aplicaciones web MVC
Silex para aplicaciones web MVCSilex para aplicaciones web MVC
Silex para aplicaciones web MVCAsier Marqués
 
Desarrollo de una aplicación Web para organizar Eventos Deportivos
Desarrollo de una aplicación Web para organizar Eventos DeportivosDesarrollo de una aplicación Web para organizar Eventos Deportivos
Desarrollo de una aplicación Web para organizar Eventos DeportivosAdrian Alonso Vega
 
Migrando un módulo Field Formatter a Drupal 8
Migrando un módulo Field Formatter a Drupal 8Migrando un módulo Field Formatter a Drupal 8
Migrando un módulo Field Formatter a Drupal 8Franco Cedillo
 
Tutorial CodeIgniter + Netbeans 7
Tutorial CodeIgniter + Netbeans 7Tutorial CodeIgniter + Netbeans 7
Tutorial CodeIgniter + Netbeans 7Juan Fede
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corporacion de Industrias Tecnologicas S.A.
 
Symfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony FrameworkSymfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony Frameworkexcedesoft
 
MVVM en Windows Phone
MVVM en Windows PhoneMVVM en Windows Phone
MVVM en Windows Phoneirega
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxLuis Fernando Aguas Bucheli
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsEsteban Saavedra
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Ricard Luquero
 

Similar a Symfony2 un framework para maximizar tu productividad en desarrollo web (20)

Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Gestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterGestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniter
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Construyendo RIA con Silverlight 2
Construyendo RIA con Silverlight 2Construyendo RIA con Silverlight 2
Construyendo RIA con Silverlight 2
 
CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
Silex para aplicaciones web MVC
Silex para aplicaciones web MVCSilex para aplicaciones web MVC
Silex para aplicaciones web MVC
 
Desarrollo de una aplicación Web para organizar Eventos Deportivos
Desarrollo de una aplicación Web para organizar Eventos DeportivosDesarrollo de una aplicación Web para organizar Eventos Deportivos
Desarrollo de una aplicación Web para organizar Eventos Deportivos
 
Migrando un módulo Field Formatter a Drupal 8
Migrando un módulo Field Formatter a Drupal 8Migrando un módulo Field Formatter a Drupal 8
Migrando un módulo Field Formatter a Drupal 8
 
Tutorial CodeIgniter + Netbeans 7
Tutorial CodeIgniter + Netbeans 7Tutorial CodeIgniter + Netbeans 7
Tutorial CodeIgniter + Netbeans 7
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
Symfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony FrameworkSymfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony Framework
 
MVVM en Windows Phone
MVVM en Windows PhoneMVVM en Windows Phone
MVVM en Windows Phone
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
Symfony Parte 2
Symfony Parte 2Symfony Parte 2
Symfony Parte 2
 
Framework
FrameworkFramework
Framework
 
2018.sps madrid.spfx workshop
2018.sps madrid.spfx workshop2018.sps madrid.spfx workshop
2018.sps madrid.spfx workshop
 
Programacion
ProgramacionProgramacion
Programacion
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
 
Atix13
Atix13Atix13
Atix13
 

Más de IEBSchool

Webinar "Cómo afectan los cambios del RGPD al Marketing"
Webinar "Cómo afectan los cambios del RGPD al Marketing"Webinar "Cómo afectan los cambios del RGPD al Marketing"
Webinar "Cómo afectan los cambios del RGPD al Marketing"IEBSchool
 
Webinar: Imagen de marca o Branding. Cómo conseguir que sea atractiva, impact...
Webinar: Imagen de marca o Branding. Cómo conseguir que sea atractiva, impact...Webinar: Imagen de marca o Branding. Cómo conseguir que sea atractiva, impact...
Webinar: Imagen de marca o Branding. Cómo conseguir que sea atractiva, impact...IEBSchool
 
Webinar: Posicionamiento ASO y APP Marketing
Webinar: Posicionamiento ASO y APP MarketingWebinar: Posicionamiento ASO y APP Marketing
Webinar: Posicionamiento ASO y APP MarketingIEBSchool
 
Webinar: Cómo aplicar la economía circular en el sector turístico
Webinar: Cómo aplicar la economía circular en el sector turísticoWebinar: Cómo aplicar la economía circular en el sector turístico
Webinar: Cómo aplicar la economía circular en el sector turísticoIEBSchool
 
Comunicacion con inteligencia
Comunicacion con inteligenciaComunicacion con inteligencia
Comunicacion con inteligenciaIEBSchool
 
Webinar: Cómo mejorar la gestión de proyectos adoptando el Design Thinking
Webinar: Cómo mejorar la gestión de proyectos adoptando el Design ThinkingWebinar: Cómo mejorar la gestión de proyectos adoptando el Design Thinking
Webinar: Cómo mejorar la gestión de proyectos adoptando el Design ThinkingIEBSchool
 
Growth Strategy - Pascual Parada
Growth Strategy - Pascual ParadaGrowth Strategy - Pascual Parada
Growth Strategy - Pascual ParadaIEBSchool
 
Caso Automatización IEBS - Oscar Fuente
Caso Automatización IEBS - Oscar FuenteCaso Automatización IEBS - Oscar Fuente
Caso Automatización IEBS - Oscar FuenteIEBSchool
 
Webinar “About Growth – Experiencias y aprendizajes para crecer”
 Webinar “About Growth – Experiencias y aprendizajes para crecer” Webinar “About Growth – Experiencias y aprendizajes para crecer”
Webinar “About Growth – Experiencias y aprendizajes para crecer”IEBSchool
 
Webinar "Claves de la optimización SEO On Page"
Webinar "Claves de la optimización SEO On Page"Webinar "Claves de la optimización SEO On Page"
Webinar "Claves de la optimización SEO On Page"IEBSchool
 
Webinar "Cómo crear Branded Content a través del Storytelling en YouTube"
Webinar "Cómo crear Branded Content a través del Storytelling en YouTube"Webinar "Cómo crear Branded Content a través del Storytelling en YouTube"
Webinar "Cómo crear Branded Content a través del Storytelling en YouTube"IEBSchool
 
Webinar "Agile Working, un nuevo modelo de trabajo"
Webinar "Agile Working, un nuevo modelo de trabajo"Webinar "Agile Working, un nuevo modelo de trabajo"
Webinar "Agile Working, un nuevo modelo de trabajo"IEBSchool
 
Webinar: Cómo usar Youtube para darte a conocer profesionalmente
Webinar: Cómo usar Youtube para darte a conocer profesionalmenteWebinar: Cómo usar Youtube para darte a conocer profesionalmente
Webinar: Cómo usar Youtube para darte a conocer profesionalmenteIEBSchool
 
Webinar: Aspectos legales en la Publicidad Digital
Webinar: Aspectos legales en la Publicidad DigitalWebinar: Aspectos legales en la Publicidad Digital
Webinar: Aspectos legales en la Publicidad DigitalIEBSchool
 
Webinar: Cómo usar el Storytelling para ser un emprendedor de éxito
Webinar: Cómo usar el Storytelling para ser un emprendedor de éxitoWebinar: Cómo usar el Storytelling para ser un emprendedor de éxito
Webinar: Cómo usar el Storytelling para ser un emprendedor de éxitoIEBSchool
 
Webinar: Instagram para Empresas
Webinar: Instagram para EmpresasWebinar: Instagram para Empresas
Webinar: Instagram para EmpresasIEBSchool
 
Webinar: Potencia tu negocio con Podcasting
Webinar: Potencia tu negocio con PodcastingWebinar: Potencia tu negocio con Podcasting
Webinar: Potencia tu negocio con PodcastingIEBSchool
 
Webinar: Proyectos CRO: cómo mejorar la UX y conversiones de tu web
Webinar: Proyectos CRO: cómo mejorar la UX y conversiones de tu webWebinar: Proyectos CRO: cómo mejorar la UX y conversiones de tu web
Webinar: Proyectos CRO: cómo mejorar la UX y conversiones de tu webIEBSchool
 
Webinar "Cómo crear una comunidad de seguidores en las redes sociales"
Webinar "Cómo crear una comunidad de seguidores en las redes sociales" Webinar "Cómo crear una comunidad de seguidores en las redes sociales"
Webinar "Cómo crear una comunidad de seguidores en las redes sociales" IEBSchool
 
Webinar: Cómo contratar al mejor talento con Inbound Recruiting
Webinar: Cómo contratar al mejor talento con Inbound Recruiting Webinar: Cómo contratar al mejor talento con Inbound Recruiting
Webinar: Cómo contratar al mejor talento con Inbound Recruiting IEBSchool
 

Más de IEBSchool (20)

Webinar "Cómo afectan los cambios del RGPD al Marketing"
Webinar "Cómo afectan los cambios del RGPD al Marketing"Webinar "Cómo afectan los cambios del RGPD al Marketing"
Webinar "Cómo afectan los cambios del RGPD al Marketing"
 
Webinar: Imagen de marca o Branding. Cómo conseguir que sea atractiva, impact...
Webinar: Imagen de marca o Branding. Cómo conseguir que sea atractiva, impact...Webinar: Imagen de marca o Branding. Cómo conseguir que sea atractiva, impact...
Webinar: Imagen de marca o Branding. Cómo conseguir que sea atractiva, impact...
 
Webinar: Posicionamiento ASO y APP Marketing
Webinar: Posicionamiento ASO y APP MarketingWebinar: Posicionamiento ASO y APP Marketing
Webinar: Posicionamiento ASO y APP Marketing
 
Webinar: Cómo aplicar la economía circular en el sector turístico
Webinar: Cómo aplicar la economía circular en el sector turísticoWebinar: Cómo aplicar la economía circular en el sector turístico
Webinar: Cómo aplicar la economía circular en el sector turístico
 
Comunicacion con inteligencia
Comunicacion con inteligenciaComunicacion con inteligencia
Comunicacion con inteligencia
 
Webinar: Cómo mejorar la gestión de proyectos adoptando el Design Thinking
Webinar: Cómo mejorar la gestión de proyectos adoptando el Design ThinkingWebinar: Cómo mejorar la gestión de proyectos adoptando el Design Thinking
Webinar: Cómo mejorar la gestión de proyectos adoptando el Design Thinking
 
Growth Strategy - Pascual Parada
Growth Strategy - Pascual ParadaGrowth Strategy - Pascual Parada
Growth Strategy - Pascual Parada
 
Caso Automatización IEBS - Oscar Fuente
Caso Automatización IEBS - Oscar FuenteCaso Automatización IEBS - Oscar Fuente
Caso Automatización IEBS - Oscar Fuente
 
Webinar “About Growth – Experiencias y aprendizajes para crecer”
 Webinar “About Growth – Experiencias y aprendizajes para crecer” Webinar “About Growth – Experiencias y aprendizajes para crecer”
Webinar “About Growth – Experiencias y aprendizajes para crecer”
 
Webinar "Claves de la optimización SEO On Page"
Webinar "Claves de la optimización SEO On Page"Webinar "Claves de la optimización SEO On Page"
Webinar "Claves de la optimización SEO On Page"
 
Webinar "Cómo crear Branded Content a través del Storytelling en YouTube"
Webinar "Cómo crear Branded Content a través del Storytelling en YouTube"Webinar "Cómo crear Branded Content a través del Storytelling en YouTube"
Webinar "Cómo crear Branded Content a través del Storytelling en YouTube"
 
Webinar "Agile Working, un nuevo modelo de trabajo"
Webinar "Agile Working, un nuevo modelo de trabajo"Webinar "Agile Working, un nuevo modelo de trabajo"
Webinar "Agile Working, un nuevo modelo de trabajo"
 
Webinar: Cómo usar Youtube para darte a conocer profesionalmente
Webinar: Cómo usar Youtube para darte a conocer profesionalmenteWebinar: Cómo usar Youtube para darte a conocer profesionalmente
Webinar: Cómo usar Youtube para darte a conocer profesionalmente
 
Webinar: Aspectos legales en la Publicidad Digital
Webinar: Aspectos legales en la Publicidad DigitalWebinar: Aspectos legales en la Publicidad Digital
Webinar: Aspectos legales en la Publicidad Digital
 
Webinar: Cómo usar el Storytelling para ser un emprendedor de éxito
Webinar: Cómo usar el Storytelling para ser un emprendedor de éxitoWebinar: Cómo usar el Storytelling para ser un emprendedor de éxito
Webinar: Cómo usar el Storytelling para ser un emprendedor de éxito
 
Webinar: Instagram para Empresas
Webinar: Instagram para EmpresasWebinar: Instagram para Empresas
Webinar: Instagram para Empresas
 
Webinar: Potencia tu negocio con Podcasting
Webinar: Potencia tu negocio con PodcastingWebinar: Potencia tu negocio con Podcasting
Webinar: Potencia tu negocio con Podcasting
 
Webinar: Proyectos CRO: cómo mejorar la UX y conversiones de tu web
Webinar: Proyectos CRO: cómo mejorar la UX y conversiones de tu webWebinar: Proyectos CRO: cómo mejorar la UX y conversiones de tu web
Webinar: Proyectos CRO: cómo mejorar la UX y conversiones de tu web
 
Webinar "Cómo crear una comunidad de seguidores en las redes sociales"
Webinar "Cómo crear una comunidad de seguidores en las redes sociales" Webinar "Cómo crear una comunidad de seguidores en las redes sociales"
Webinar "Cómo crear una comunidad de seguidores en las redes sociales"
 
Webinar: Cómo contratar al mejor talento con Inbound Recruiting
Webinar: Cómo contratar al mejor talento con Inbound Recruiting Webinar: Cómo contratar al mejor talento con Inbound Recruiting
Webinar: Cómo contratar al mejor talento con Inbound Recruiting
 

Symfony2 un framework para maximizar tu productividad en desarrollo web

  • 1. [1] [1] Twittea este evento con el hashtag #eventosiebs
  • 2. [2] [2] Symfony2. Máxima productividad en desarrollo web Twittea este evento con el hashtag #eventosiebs
  • 3. [3] [3] Symfony2 – Requisitos previos Tener conocimientos de los siguientes temas •HTML5 •CSS / CSS3 •PHP •Programación orientada a objetos (POO) Twittea este evento con el hashtag #eventosiebs
  • 4. [4] [4] Symfony2 - Objetivos • Entender el comportamiento de Symfony2 basado en el patrón MVC. • Instalar un proyecto completo de Symfony2. • Crear rutas, controladores y vistas para desarrollar sitios web. • Crear entidades para la persistencia de datos en bases de datos MySQL. • Crear repositorios para extender la lógica de negocio de nuestro proyecto. • Crear formularios para la interación entre usuario y la aplicación. • Dotar a la aplicación de sistemas de seguridad sobre accesos y permisos de los usuarios. • Insertar en nuestras aplicaciones bundles externos. Twittea este evento con el hashtag #eventosiebs
  • 5. [5] [5] Symfony2 • Es un framework basado en PHP • Responde al patrón Modelo – Vista – Controlador (MVC) • Está formado por muchos componentes independientes. • Podemos crear nuestros propios bundles. • Podemos instalar bundles externos. • Podemos trabajar en varios formatos. • Usa Doctrine como ORM. • Usa plantillas Twig. • Gestiona formularios, login, seguridad fácilmente desde configuración. Twittea este evento con el hashtag #eventosiebs
  • 6. [6] [6] Symfony2 - MVC • El usuario hace una petición url. (http://www.....) • El controlador frontal busca en el Routing (archivo de rutas) cuál es el controlador que se encargará de atender a esa petición y lo ejecuta. • El controlador genera la información necesaria para responder a la petición y se lo pasa a la vista. • La vista renderiza toda la información y la muestra al usuario en su Twittea este evento con el hashtag #eventosiebs navegador.
  • 7. [7] [7] Symfony2 – Varios formatos • Podemos trabajar en distinto formatos como PHP, anotaciones, YAML, plantillas Twig Twittea este evento con el hashtag #eventosiebs
  • 8. [8] [8] Symfony2 - Routing • Se establece un nombre de ruta, un patrón que debe cumplir esta y el controlador que se hará cargo de la petición. Twittea este evento con el hashtag #eventosiebs # app/config/routing.yml pagina_ayuda: path: /ayuda defaults: { _controller: OfertaBundle:Default:ayuda }
  • 9. [9] [9] Symfony - Bundles • Los bundles son funcionalidades completas agrupadas en un mismo paquete • Similar a los plugins de WordPress • Podemos configurar los nuestros propios o usar bundles externos que sabemos funcionan correctamente • Existe abundante información sobre bundles que ya podemos incorporar a nuestros proyectos así como la fiabilidad y mantenimiento de los mismos Twittea este evento con el hashtag #eventosiebs
  • 10. [10] [10] Symfony - Seguridad • El framework gestiona el login de los usuarios (autenticación). • También gestiona los derechos de acceso de los usuarios (autorización) Twittea este evento con el hashtag #eventosiebs Imagen del libro oficial
  • 11. [11] [11] Symfony - Formularios • Symfony también lleva a cabo la gestión de formularios vinculando estos a los modelos que hayamos generado. • Esto permite grabar los datos de forma fácil así como validarlos y obtener mensajes de error Twittea este evento con el hashtag #eventosiebs
  • 12. [12] [12] Symfony - Doctrine • Doctrine no pertenece al proyecto Symfony. Es un componente externo. • Doctrine es un mapeador ORM que permite obtener los datos de una base de datos relacional y los entrega como objetos. • También al contrario, partiendo de objetos, grabar la información en bases de datos relacionales. • Permite crear la base de datos, las tablas y las modificaciones de estas desde órdenes de consola sin tener que recurrir a phpMyAdmin • Gestiona las asociaciones existentes entre los objetos de nuestro modelo Twittea este evento con el hashtag #eventosiebs a nivel de tablas. • Gestiona transacciones.
  • 13. [13] [13] Symfony - Modelo • Creamos las clases que representan a los objetos de la aplicación. • En estas mismas clases definimos la validación de los campos así como las relaciones que se establecen entre los objetos Twittea este evento con el hashtag #eventosiebs
  • 14. [14] [14] Symfony2 - Repositorios • Cada clase del modelo tiene asociada su propia clase de repositorio. • Esto permite mantener al modelo lo más simple posible. • Los repositorios contienen la lógica de la aplicación y contienen los métodos necesarios para ello. Twittea este evento con el hashtag #eventosiebs
  • 15. [15] [15] Symfony - Plantillas • Usa de Twig como motor para renderizar las plantillas • Las plantillas pueden heredar unas de otras, lo que nos permite varios niveles de herencia • Son fáciles de crear y mantener lo que no permite separar fácilmente diseño y modelo • Podemos ejecutar directamente controladores Twittea este evento con el hashtag #eventosiebs
  • 16. [16] [16] Symfony - Productividad • Resuelve fácilmente tareas rutinarias de cualquier aplicación como login, formularios, seguridad etc. • Permite crear funcionalidades completas (bundles) que pueden ser reutilizadas en otras aplicaciones. • Permite usar bundles de terceros sobre funcionalidades que ya están probadas. • Permite la herencia en plantillas Twig facilitando el diseño de las páginas. • Resuelve fácilmente el tema la persistencia a bases de datos relacionales desde objetos mediante el ORM Doctrine. • Permite realizar la instalación y mantener las dependencias entre los componentes mediante Composer Twittea este evento con el hashtag #eventosiebs
  • 17. [17] [17] Symfony - Resumen • Flexibilidad en la configuración ya que podemos usar (o no) todos sus componentes. • Código fácilmente reutilizable mediante bundles propios y de terceros. • Diseño fácilmente adaptable mediante plantillas Twig. • Fácil configuración de la persistencia entre objetos y base de datos mediante Doctrine. • Fácil configuración de la seguridad de la aplicación. Desde el login del usuario hasta la acreditación de los mismo para acceder a según qué zonas de la aplicación • Fácil configuración de la creación de formularios mediante asignación Twittea este evento con el hashtag #eventosiebs directa a una clase del modelo.
  • 18. [18] [18] ¡Gracias! Twittea este evento con el hashtag #eventosiebs