[1]
[1]
Twittea este evento con el hashtag #eventosiebs
[2]
[2]
Twittea este evento con el hashtag #eventosiebs
Symfony2. Máxima productividad en desarrollo web
[3]
[3]
Twittea este evento con el hashtag #eventosiebs
Symfony2 – Requisitos previos
Tener conocimientos de los siguientes temas•HTML5•CSS / CSS3•PHP•Programación orientada a objetos (POO)
[4]
[4]
Twittea este evento con el hashtag #eventosiebs
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.
[5]
[5]
Twittea este evento con el hashtag #eventosiebs
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.
[6]
[6]
Twittea este evento con el hashtag #eventosiebs
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
navegador.
[7]
[7]
Twittea este evento con el hashtag #eventosiebs
• Podemos trabajar en distinto formatos como PHP, anotaciones, YAML, plantillas Twig
Symfony2 – Varios formatos
[8]
[8]
Twittea este evento con el hashtag #eventosiebs
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.
# app/config/routing.yml
pagina_ayuda:
path: /ayuda
defaults: { _controller: OfertaBundle:Default:ayuda }
[9]
[9]
Twittea este evento con el hashtag #eventosiebs
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
[10]
[10]
Twittea este evento con el hashtag #eventosiebs
Symfony - Seguridad
• El framework gestiona el login de los usuarios (autenticación).• También gestiona los derechos de acceso de los usuarios (autorización)
Imagen del libro oficial
[11]
[11]
Twittea este evento con el hashtag #eventosiebs
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
[12]
[12]
Twittea este evento con el hashtag #eventosiebs
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
a nivel de tablas.• Gestiona transacciones.
[13]
[13]
Twittea este evento con el hashtag #eventosiebs
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
[14]
[14]
Twittea este evento con el hashtag #eventosiebs
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.
[15]
[15]
Twittea este evento con el hashtag #eventosiebs
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
[16]
[16]
Twittea este evento con el hashtag #eventosiebs
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
[17]
[17]
Twittea este evento con el hashtag #eventosiebs
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 directa a una clase del modelo.
[18]
[18]
Twittea este evento con el hashtag #eventosiebs
¡Gracias!