Este conjunto de tutoriales tratarán sobre el desarrollo de aplicaciones web con Symfony 2.0
En este primer tutorial trataremos de explicar los conceptos fundamentales del Framework de Symfony 2.0, para que así las siguientes entregas se puedan llegar a entender mucho más facilmente.

El glosario de términos que utilizaremos son los siguientes:

  • HTTP/S: protocolo principal de la web.
  • Petición: información enviada desde el cliente HTTP al servidor.
  • URL: Parte de la petición HTTP que define entre otras cosas el servidor, la ruta el fichero y un conjunto de parámetros.
  • Respuesta: información devuelta por parte del servidor al cliente.
  • Base de Datos: fuente de información estructurada en tablas, campos y relaciones.
  • Modelo-Vista-Controlador: patrón de diseño de aplciaciones de tres capas.
  • Modelo: conjunto de clases y objetos que manejan la conexión y las consultas a la base de datos.
  • Control: conjunto de clases que gestionan y procesan la información y la lógica de negocio de una aplicación.
  • Vista: conjunto de ficheros que componen el apartado visual de una aplicación, con lo que interactúa el usuario.
  • Controlador Principal Web: Clase principal que captura las peticiones entrantes de una aplicación web y pasa el control a las distintas funcionalidades de la aplicación web.
  • Módulo: agrupación de funcionalidades de una aplicación. Una aplicación suele contener distintos módulos. Por ejemplo, la gestión de clientes.
  • Acción: funcionalidad específica de un módulo, por ejemplo, dar de alta un cliente.
  • Plantilla: fichero que permite la generación dinámica de una vista de un módulo, por ejemplo la vista que presenta la información de un cliente.
  • Controlador de Módulo: Clase que implementa las funcionalidades del Control de un Módulo.
  • Bundle o Componente:  conjunto de funcionalidades de alto nivel, podría decirse que es un conjunto de módulos.
  • Framework: conjunto de herramientas y bibliotecas que facilitan la tarea del programados a la hora de desarrollar aplicaciones.

Flujo de la gestión de una petición con Symfony 2

Una de las cuestiones principales a la hora de entender un nuevo framework web, es la manera en la cual se gestionan las peticiones web internamente, de cara a comprender qué pasos van dándose hasta la resolución de una petición.
Gracias al libro de Symfony 2 disponemos de un gráfico revelador respecto al funcionamiento interno de Symfony 2.

Como puede observarse en este diagrama, las distintas peticiones son gestionadas por un Controlador Principal de la Aplicación Web o Control de la Aplicación. Como sucede en otros frameworks, como Spring, todas las peticiones son despachadas por este controlador principal, el cual trata de averiguar que parte de la aplicación debe ser ejecutada para resolver la petición.
La localización de la funcionalidad se realiza a través de un sistema de routing, o mapping, como quiera verse, en el que se relacionan las distintas direcciones URL con las funcionalidades existentes en la aplicación.
Una vez localizada la funcionalidad a ejecutar, se cede el control a un Controlador de módulo el cual ejecuta la Acción específica que resolverá la petición generando una Respuesta.

Componentes principales

Los componentes principales de Symfony 2 son los siguientes:

  • HttpFundation: contiene las clases Request y Response, entre otras
  • Routing: sistema de enrutado de peticiones
  • Form: clases de manejo de formularios y envíos
  • Validator: clases de validación de datos
  • ClassLoader: sistema de carga de clases
  • Templating: sistema de gestión de plantillas
  • Security: herramientas de seguridad
  • Translation: sistema de traducciones

Referencias: 

Symfony 2.0 Book: http://symfony.com/doc/current/book/index.html

Licencia Creative Commons