Presentación del webinar “Symfony2: un framework para maximizar tu productividad en desarrollo web” impartido por Andrés Molina Orero en IEBS Business School. Más info aquí: http://open.iebschool.com/cursos/symfony-2-framework-maximizar-productividad-desarrollo-web/
Una gran parte de las funcionalidades y retos que plantea el desarrollo de una aplicación web son comunes de un proyecto a otro: la creación de un login de usuarios, la seguridad de la aplicación, los formularios o la persistencia de los datos. Estos casos comunes provocan grandes inversiones de desarrollo que podrían solucionarse trabajando con un framework.
Symfony2 es un framework de PHP que permite centrarte en la lógica de tu negocio y te brinda numerosas herramientas para poner solución a los temas frecuentes de forma simple, ágil y robusta. Este framework de desarrollo web permite trabajar en diferentes formatos, usar componentes independientes, además de crear funcionalidades propias a través de los llamados bundles que son fácilmente reutilizables.
En este curso de "Symfony 2: un framework para maximizar tu productividad en desarrollo web" aprenderás a crear un proyecto basado en Symfony2 desde cero; desde su instalación hasta la creación de bundles propios pasando por las utilidades de desarrollo más frecuentemente utilizadas.
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.