【问题标题】:How does the exclamantion mark work in symfony configuration files?感叹号在 symfony 配置文件中是如何工作的?
【发布时间】:2021-07-22 23:56:23
【问题描述】:

以此为例:https://github.com/akeneo/pim-community-dev/blob/master/src/Akeneo/Platform/Bundle/UIBundle/Resources/config/services.yml#L84

Akeneo\Platform\Bundle\UIBundle\Provider\ExternalJavascriptDependenciesProvider:
    arguments:
        - !tagged akeneo.pim.security.external_dependency_provider

还有这个:https://github.com/akeneo/pim-community-dev/blob/master/src/Akeneo/Platform/Bundle/UIBundle/Provider/ExternalJavascriptDependenciesProvider.php

declare(strict_types=1);

namespace Akeneo\Platform\Bundle\UIBundle\Provider;

final class ExternalJavascriptDependenciesProvider
{
    private iterable $externalDependenciesProviders;

    public function __construct(iterable $externalDependenciesProviders)
    {
        $this->externalDependenciesProviders = $externalDependenciesProviders;
    }

    public function getScripts(): array
    {
        $dependencies = [];

        foreach ($this->externalDependenciesProviders as $externalDependenciesProvider) {
            $dependencies[] = $externalDependenciesProvider->getScript();
        }

        return $dependencies;
    }
}

因为构造函数接受一个可迭代作为参数,所以我知道它必须是一个数组,所有服务都标记为akeneo.pim.security.external_dependency_provider,但我在任何地方都找不到关于它的文档。 我可以在这里找到一些关于 !tagged_iterator 的文档:https://symfony.com/doc/current/service_container/tags.html#tagged-services-with-index 但它并没有提到“!tagged”(没有 _iterator 后缀)

【问题讨论】:

    标签: php symfony configuration yaml


    【解决方案1】:

    !tagged 和 !tagged_iterator 是一样的。只是前者改名为后者而已。

    见https://github.com/symfony/symfony/issues/31289

    【讨论】:

      猜你喜欢
      • 2015-06-01
      • 2017-01-18
      • 1970-01-01
      • 2012-11-01
      • 1970-01-01
      • 2011-12-22
      • 2018-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多