Framework Symfony 2 para
desarrollar aplicaciones en PHP
Symfony2
es un framework rápido, flexible y fácil de aprender cuya primera
versión fue creada en el año 2005 por Fabien Potencier, y en julio del 2011
veía la luz Symfony2, del cual podemos destacar estas características: 
• Ha
sido creado teniendo en cuenta el rendimiento como una de las principales
prioridades, lo que lo ha convertido en uno de los frameworks más rápidos y
que menos recursos consume.
• Fácil
de utilizar ya que cuenta con una API de desarrollo muy intuitiva.
• Permite
la creación de aplicaciones extensibles, es decir, las aplicaciones son
creadas por medio de módulos (Bundles) que pueden ser reutilizados en
cualquier proyecto.
• Facilita
la tarea a los desarrolladores, proporcionando un entorno de desarrollo con
una barra de herramientas donde ver en todo momento información interesante
para el usuario, como la memoria que se consume, acceso a log de errores
detallados, tiempo de ejecución de la aplicación…
• Es
Open Source, por lo que somos libres de hacer lo que queramos con él.
• Potente
línea de comandos que permite realizar gran parte del trabajo de forma
automática, como es la creación del proyecto, implementación de las
entidades o el borrado de la caché.
Una vez que hemos instalado Symfony2,
obtendremos una estructura de directorios similar a la que podéis ver en la
siguiente imagen.
Symfony2 cuenta con unas secciones bien
diferenciadas que son las encargadas de aportar todo el potencial a la hora
de la creación de aplicaciones. Estas secciones en las que se divide son:
1.- El núcleo
Se trata de la pieza principal del framework y
es la encargada de inicializar la configuración de la aplicación y arrancar
los bundles que forman parte de ella.
2. Bundles
Un Bundle se puede definir como un módulo
encargado de realizar una tarea específica y que puede ser utilizado en
cualquier proyecto.
3.- Contenedor de inyección de dependencias
Uno de los puntos fuertes de Symfony2 e
inspirado en el framework Spring de Java. Este contenedor de dependencias
facilita la tarea al programador, ya que no se debe preocupar de la creación
de las dependencias entre objetos, sino que todo lo realiza el framework de
forma totalmente transparente.
4.- Manejador de peticiones
Se trata de una de las partes más importantes
del framework. Se encarga de encapsular la petición del usuario y devolverle
una respuesta. Es un manejador algo especial, ya que notifica eventos a la
espera de que un escuchador se haga cargo de ellos y devuelva la información
solicitada.
5.- Manejador de eventos
Es el encargado de gestionar todos los eventos
que se producen durante la ejecución de la aplicación. Otra de la
característica principal que ofrece Symfony2 son los distintos entornos de
trabajo que nos ofrece a la hora de trabajar con él. Los entornos que trae
por defecto son los siguientes:
• Entorno
de desarrollo.
Es el entorno utilizado por los desarrolladores mientras se trabaja en la
construcción de la aplicación.
• Entorno
de prueba.
Este entorno es utilizado para testear la aplicación de forma automática por
medio de las pruebas unitarias.
• Entorno
de muestra.
Se trata del entorno que utilizará el cliente para testear la aplicación en
busca de posibles errores.
• Entorno
de producción.
Es el entorno que se activa cuando la aplicación cumple con todos los
requisitos y se ha quedado limpia de errores.
Además de los entornos que ofrece Symfony2 por
defecto, el programador puede crearse sus propios entornos de trabajo.