再利用可能なバンドルを作成しているときに、作曲家を介してそれを行う方法がわかりません。代わりに、symfony のConfiguration Component
を使用
して、ファイルに基づいてバンドルを設定し、これらのパラメーターを必須にすることができます。この方法では、バンドルがインストールされているときに、ユーザーはそれらのパラメーターを提供する必要があります。あなたのユースケースでは、次のようになります。 config.yml
// in YourBundle\DependencyInjection\Configuration
public function getConfigTreeBuilder(){
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('your_bundle_alias');
$rootNode
->children()
->scalarNode('param1')->isRequired()->end()
->scalarNode('param1')->isRequired()->end()
->end();
}
// in YourBundle\DependencyInjection\YourExtension
public function load(array $configs, ContainerBuilder $container){
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
// ...
// get the parameters entered in the config file, and configured above
$param1 = $config['param1'];
$param2 = $config['param2'];
// inject them into my_service
$container->getDefinition('my_service')
->setArguments(array($param1, $param2));
// ...
}
バンドル構成をこのように記述すると、ユーザーconfig.yml
は次のようにバンドルのエントリをファイルに入力する必要があります。
your_bundle_alias:
param1: the_users_value
param2: another_value