En config.yml de Symfony2 se puede añadir una "importación", tales como:Symfony2: ¿Es posible agregar configuración para otro paquete a través de DependencyInjection?
imports:
- { resource: services.yml }
Dentro de mi services.yml Entonces tengo:
imports:
security_bundle:
resource: @AcmeSecurityBundle/Resources/config/services.yml
Sin embargo, la forma alternativa de declarar los servicios de un paquete es mediante el uso de DependencyInjection
Extension
eliminando así la necesidad de importar nada en config.yml manualmente desacoplando el código.
namespace Acme\Bundle\SecurityBundle\DependencyInjection;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
use Symfony\Component\Config\FileLocator;
class AcmeSecurityExtension extends Extension {
public function load(array $configs, ContainerBuilder $container) {
$loader = new YamlFileLoader(
$container, new FileLocator(__DIR__ . '/../Resources/config')
);
$loader->load('services.yml');
}
}
La pregunta Esto funciona bien para las declaraciones de servicio pero dicen por ejemplo que desea un paquete para configurar otro paquete, tales como la adición de LiipImagineBundle
(es como AvalancheImagineBundle
) Filtros:
liip_imagine:
filter_sets:
security_avatar_thumbnail:
quality: 75
filters:
thumbnail: { size: [140, 140], mode: inset }
Symfony entonces se queja de que
No hay extensión capaz de cargar la configuración de r "liip_imagine"
Así que ¿alguien sabe si hay una manera de añadir la configuración de tercer haz parte de otro paquete sin tocar config.yml
?
¡Necesité esto para FOSUserBundle! Ahora puedo crear mi extensión y precargarla con mi configuración. Ejemplo: $ contenedor-> prependExtensionConfig ('fos_user', array ( 'db_driver' => 'orm' )); –