別のバンドルからバンドル構成を変更できるかどうか疑問に思っていました。たとえば、次の構成で 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のプルリクエストがあるようです。
EDIT 2: これは Symfony 2.2 で利用できるようになりました (クックブックの記事付き)。