我不知道这是否有一些好处:是否应该从服务容器中删除未使用的服务?
例如,在我的包配置中,我可以禁用lang
选项提供程序:
my_bundle:
providers:
lang:
enabled: false
lang
启用提供程序后,应provider
添加标记。该服务在services.xml
文件中定义并通过扩展加载:
<service id="my_bundle.provider.lang" class="My\Provider\LangOptionsProvider">
所以,删除这个定义是个好主意,为什么?
public function load(array $configs, ContainerBuilder $container)
{
// ...
$loader->load('services.xml'); // Loads "my_bundle.provider.lang"
if($config['providers']['lang']['enabled']) {
// lang provider is enabled, add the tag
$container->getDefinition('my_bundle.provider.lang')->addTag('provider');
}
else { // Is this really needed?
// Remove lang provider definition (or just the tag?!)
$container->removeDefinition('my_bundle.provider.lang');
}
}