我想知道是否有可能从另一个软件包修改软件包配置。比方说,例如,我使用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'
);
}
}
是这样的可能吗?或者打败它依赖注入的目的?
编辑:显然有一个pull request为Symfony 2.2解决这个想法/问题。编辑2:现在可以在Symfony 2.2中使用(使用article in the cookbook)。
如果你有答案,你可以发表一个答案给你自己的问题,以启发他人。 – neontapir