我的 symfony 2.1 项目我想在自定义服务中使用 findTaggedServiceIds() 。
服务:
class GetServiceMaps
{
private $container;
public function __construct($container)
{
$this->container = $container;
}
public function getServices()
{
$taggedServices = $this->container->findTaggedServiceIds(
'efg_statistic.service');
return $taggedServices;
}
}
我的 service.yml:
parameters:
efg_identity.get_where_dql.class: \GetWhereDql
efg_statistic.get_service_maps.class: \GetServiceMaps
symfony.container_builder.class: \ContainerBuilder
services:
symfony.container_builder:
class: %symfony.container_builder.class%
.get_where_dql:
class: %efg_identity.get_where_dql.class%
calls:
- [getMapping, ["@efg_identity.get_where_dql"]]
tags:
- { name: efg_statistic.service }
.get_service_maps:
class: %efg_statistic.get_service_maps.class%
arguments: ["@symfony.container_builder"]
我的问题是打电话
$taggedServices = $container->getServices();
返回一个空数组。我想这与我注入了一个新的 ContainerBuilder 实例有关,但是为了调用 findTaggedServiceIds 我不知道如何绕过它。
不幸的是,使用 CompilerInterface 编译器传递对我来说不是一个选项。
任何帮助深表感谢!