Conceptos de Symfony expresados de manera sencilla para el desarrollador novato
Seguramente has llegado aquí porque has oido hablar sobre Symfony o lo conoces perfectamente. Este artículo trata de ser una introducción a Symfony para aquellos que están empezando. A lo largo de una serie de artículos iremos explicando algunos de los componentes más importantes de Symfony y para qué se utilizan.
Symfony es un framework de PHP basado en un patrón Modelo Vista Controlador. Este framework permite el desarrollo de aplicaciones orientadas a la web con una gran sencillez debido a que muchos otros desarrolladores colaboran con la comunidad y desplegan sus paquetes de software a través de Composer. Además, introduce muchos componentes interesantes como el componente Routing o un ORM que nos permite generar conexiones con bases de datos de una manera intuitiva y sencilla.
Por otro lado, Symfony utiliza un sistema de wizards o asistentes que nos permiten la generación de instancias, controladores, conexiones a bases de datos e incluso formularios para las entidades de nuestro modelo por medio de comandos de consola. Además, estos comandos también pueden ser implementados por el desarrollador, permitiendo un sinfín de posibilidades.
Un poco de historia:
Symfony comenzó siendo una herramienta de SensioLab, que es una empresa francesa de software. Idearon un proyecto en el que establecer una serie de piezas de software que les permitiese mejorar su desarrollo.
Symfony se creó en 2005 como un proyecto Open Source de la empresa SensioLab. Actualmente implementa la versión 3.3. y presume de más de 18 millones de descargas a través de composer y en total, sumando sus componentes y versiones suma más de 700 millones de descargas.
De manera similar a Laravell, Symfony es un framework que posee una gran comunidad de desarrolladores detrás. Gracias a su planteamiento modular y que está implementado en componentes se permite a los desarrolladores introducir mejoras y ajustes de manera más sencilla.
Symfony ha ido evolucionando año a año y Sensio continúa elaborando mejoras en el software del framework.
SensioLab además imparte cursos de Symfony, charlas y además permite obtener certificaciones en las distintas versiones del framework que se distribuyen actualmente.
La estructura de Symfony:
Cuando instalamos Symfony por primera vez nos encontramos un conjunto de directorios de los que no hemos oido hablar nunca o nos han contado algo sobre ellos. Seguramente hayas oido hablar de Bundles u otro tipo de componentes. En realidad, la estructura de Symfony es bastante intuitiva y está pensada para que solo tengas conocer ciertos sitios donde desplegar tu código para que las cosas funcionen.
Aunque sus localizaciones pueden ser modificadas por el desarrollador, los directorios que contiene Symfony una vez instalado son los siguientes:
app: Directorio donde se encuentran las configuraciones, traducciones de la aplicación y en algunos casos se pueden encontrar plantillas de uso general, como por ejemplo la página 404 de un sitio web.
bin: Se trata de un directorio con ejecutables de otros proyectos de los que dependa el nuestro, es decir, de los Bundles.
var/cache: Es un directorio en donde se generan los ficheros de caché y además se generan los logs de la aplicación.
web: Se trata del document root de nuestro proyecto. No es necesario introducir en este directorio ningún fichero concreto ya que ciertas extensiones del motor de plantillas Twig (que ya viene integrado con Symfony) permiten la creación de estos ficheros en su última versión de manera automática.
vendor: Es el directorio donde se instalan las dependencias externas.
tests: Directorio en el qeu se implementan los tests generales o de integración.
src: Aquí estará el código fuente de nuestra aplicacion segmentada en bundles.