Índice

Las Extensiones de bundleextensiones de bundle

Hasta ahora, únicamente hemos trabajado alrededor de dos secciones de configuración: services (definido en app/config/services.yml) y parameters (app/config/parameters.yml).

Estos dos archivos permiten (entre otras cosas), definir los servicios de manera rápida pero bastante estática: todo se configura en duro. Esto no es obligatoriamente un aspecto bloqueante en el caso de servicios orientados al “negocio”, porque normalmente se especifican en la aplicación que los contiene, pero en el caso de servicios puramente “funcionales” (es decir, cuando se pueden compartir por varias de sus aplicaciones), es preferible utilizar las herramientas que Symfony pone a nuestra disponible para facilitar su portabilidad.

Antes de continuar, es primordial recordar que el único objetivo del componente DependencyInjection, es crear los servicios dentro del Service Container. Y no es solo por la gran variedad de posibilidades ofrecidas por este componente, que vamos a mencionar más adelante, que no debe perder de vista este aspecto: la finalidad es poner a disposición del desarrollador un objeto contenedor (o Service Container) que contiene sus servicios, nada más.

Para crear nuestro Service Container, Symfony utiliza un ContainerBuilder, cuya función es cargar nuestras definiciones de servicios desde diferentes fuentes (la sección services en app/config/services.yml, así como desde nuestros bundles, como vamos a ver) y potencialmente ...