我想知道是否有可能从另一个包修改包配置。比方说,例如,我正在使用具有以下配置的 FOSUserBundle:
fos_user:
db_driver: orm
firewall_name: main
user_class: Acme\UserBundle\Entity\User
而现在,我想在加载特定扩展(AcmeFoobarExtension
)时更改用户类。加载时是否可以更改配置AcmeFoobarExtension
?例如:
<?php
namespace Acme\FoobarBundle\DependencyInjection;
// use statements for dependency injection
class FoobarExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$container->setConfiguration(
'fos_user.user_class',
'Acme\FoobarBundle\Entity\User'
);
}
}
这样的事情可能吗?还是违背了依赖注入的目的?
编辑:显然有一个针对 Symfony 2.2 的拉取请求,它解决了这个想法/问题。
编辑 2:这现在在 Symfony 2.2 中可用(在食谱中有一篇文章)。