Desarrollo de Aplicaciones

¿Qué son los Bundles de Symfony?

Uno de los puntos fuertes de Symfony es su escalabilidad. Permite segmentar el código en bundles para que el proyecto pueda seguir creciendo. Con un Bundle encapsulamos una o varias funcionalidades.

¿Qué son los Bundles de Symfony?

¿Qué es un bundle?

Un Bundle es un paquete, que puede contener cualquier cosa:

  • Código de programación
  • Ficheros de configuración
  • Plantillas
  • CSS, JavaScript

El contenido del bundle conforma un subaplicación dentro de nuestra aplicación (en definitiva es un plugin). Por ejemplo, se puede crear un blog en un bundle, y allí que contenga todos los ficheros necesarios para ejecutarlo (controladores, plantillas, ficheros css, ficheros js, …)

Nuestra aplicación en Symfony puede estar toda contenida en un bundle o en varios.

¿Cómo es la estructura de Symfony?

Antes de explicar como se crea un Bundle debemos conocer la estructura de un proyecto Symfony que está compuesta de los siguientes directorios:

  • app/: contiene la configuración de la aplicación.
  • src/: aquí se encuentra todo el código PHP de la aplicación. Es el directorio dónde por defecto tendremos los Bundles.
  • vendor/: por convención aquí se guardan todas las librerías creadas por terceros. En principio, es un directorio que no tenemos que tocar.
  • web/: este es el directorio web raíz y contiene todos los archivos a los que se puede acceder públicamente.

¿Cómo crear un Bundle en Symfony?

Supongamos que queremos crear un bundle para gestionar usuarios. Lo vamos a crear en el directorio src/Daw/UserBundle (el namespace debe acabar siempre por Bundle). Por tanto, desde la terminal ubicado en el directorio de nuestro proyecto escribimos el siguiente comando:

$ php app/console generate:bundle --namespace=Daw/UserBundle  

Nos hará una serie de preguntas que dejaremos por defecto, salvo la de formato de configuración donde indicaremos “yml”.

Con esto el Bundle quedará registrado en nuestra aplicación. Dentro de src/Daw/UserBundle tendremos el Bundle que acabamos de crear.

Para verificar que se ha creado correctamente podemos seguir dos pasos:

  • Verificar el fichero app/AppKernel: donde se habrá generado una nueva posición del array $bundles.
  • Verificar config/routing.yml: donde se hará una importación del fichero routing.yml de nuestro bundle.

 

Comparte este artículo

Artículos Relacionados