Symfonyはファクトリーサービスを自動的に削除しますか?
何が起こっているのかわかりませんが、私のバンドルはservice.xml
ファイルを正しくロードしています:
<services>
<service id="gremo_subscription_factory"
class="%gremo_subscription_factory.class%" public="false">
<argument>%gremo_subscription.interval%</argument>
</service>
<service id="gremo_subscription" class="%gremo_subscription.class%"
factory-service="gremo_subscription_factory"
factory-method="getSubscription">
</service>
</services>
これは、拡張クラスによって行われます。
public function load(array $configs, ContainerBuilder $container)
{
$processor = new Processor();
$configuration = new Configuration();
$config = $processor->processConfiguration($configuration, $configs);
$loader = new XmlFileLoader($container,
new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.xml');
}
サービスの定義はバンドルにgremo_subscription_factory
存在します(var_dump
コンテナーはサービス定義を示します)。gremo_subscription
ただし、別のバンドルから(たとえば、コントローラーから)サービスにアクセスしようとすると、次のようになります。
$subscription = $this->get('gremo_subscription');
例外が発生します:
存在しないサービス「gremo_subscription_factory」をリクエストしました。
なぜこれが起こっているのですか?