私の 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 でコンパイラ パスを使用することは、私にとって選択肢ではありません。
どんな助けでも大歓迎です!