symfony2 服务设置中标签的目标是什么
What is the goal of the tags in service settings in symfony2
在这个 eventListener 服务中,它使用了 标签 项目:
services:
app.exception_listener:
class: AppBundle\EventListener\ExceptionListener
tags:
- { name: kernel.event_listener, event: kernel.exception }
- 标签项目的目标是什么?
- 如何将 name (name:kernel.event_listener) 定义到这个标签项中?
标签提供可以附加到服务的 name-key-value 属性。他们自己什么都不做,但其他服务可以利用标签做一些更有趣的事情。
在您给出的特定示例中,构建容器时,事件侦听器的编译器传递查找名称为 kernel.event_listener
的服务,并将该服务注册为 kernel.exception
事件。
标签名称本身没有在任何地方定义;但是,如果您创建了一个已在容器中注册的 CompilerPass
,则您可以搜索标有特定名称的服务,并对它们执行一些有用的操作。 (例如注册事件处理程序,如上所述。)
您可以从 Symfony documentation 中找到有关标记服务的更多信息,包括一个简单的示例 CompilerPass
。
在这个 eventListener 服务中,它使用了 标签 项目:
services:
app.exception_listener:
class: AppBundle\EventListener\ExceptionListener
tags:
- { name: kernel.event_listener, event: kernel.exception }
- 标签项目的目标是什么?
- 如何将 name (name:kernel.event_listener) 定义到这个标签项中?
标签提供可以附加到服务的 name-key-value 属性。他们自己什么都不做,但其他服务可以利用标签做一些更有趣的事情。
在您给出的特定示例中,构建容器时,事件侦听器的编译器传递查找名称为 kernel.event_listener
的服务,并将该服务注册为 kernel.exception
事件。
标签名称本身没有在任何地方定义;但是,如果您创建了一个已在容器中注册的 CompilerPass
,则您可以搜索标有特定名称的服务,并对它们执行一些有用的操作。 (例如注册事件处理程序,如上所述。)
您可以从 Symfony documentation 中找到有关标记服务的更多信息,包括一个简单的示例 CompilerPass
。