Bor*_*cic 5 php dependency-injection symfony
Symfony 版本:3.4
我想知道我是否需要在编译器传递中自己实现优先级属性还是已经实现了?
主要是我试图为要在其提供者之前加载的外部库“scheb/two-factor-bundle”注册服务提供者。 有问题的编译器通过。
我正在尝试在标签上使用优先级属性,但它似乎不起作用。
优先级的东西,要求当Symfony的需要考虑findTaggedServiceIds的Symfony\Component\DependencyInjection\ContainerBuilder
更新
正如@fabian-papet所指出的,这留给开发人员实施。不要害怕 symfony 在这种情况下也有帮助。我发现了一个可以在这种情况下提供帮助的特征Symfony\Component\DependencyInjection\CompilerPriorityTaggedServiceTrait。感谢作者 Iltar van der Berg。
Symfony 中没有集成这样的功能来添加标签的优先级。这是您必须实现的功能。以下是该函数的摘要findTaggedServiceIds:
<?php
function findTaggedServiceIds($name, $throwOnAbstract = false)
{
$this->usedTags[] = $name;
$tags = array();
foreach ($this->getDefinitions() as $id => $definition) {
if ($definition->hasTag($name)) {
$tags[$id] = $definition->getTag($name);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
338 次 |
| 最近记录: |