2
私は、依存性注入コンテナからの要求に依存する基本抽象サービスを持っています。ここではその定義:symfony2が親サービスの奇妙な動作を継承する
services:
acme.controller.abstract.basic:
class: "Acme\CommonBundle\Controller\AbstractBasicController"
abstract: true
calls:
- [setRequest, ["@request"]]
このサービス定義は、リクエストスコープを必要とするので、私はこれに私の定義を変更:
:services:
acme.controller.abstract.basic:
class: "Acme\CommonBundle\Controller\AbstractBasicController"
abstract: true
scope: request
calls:
- [setRequest, ["@request"]]
今、私は以下のように、具体的なサービスには、このサービス定義を継承します
services:
acme.controller.website:
class: "Acme\WebsiteBundle\Controller\WebsiteController"
parent: "acme.controller.abstract.basic"
しかし、私はacme.controller.website
がリクエストオブジェクトよりも広い範囲を持っているという例外があります。これを修正するには、具体的なサービスにscope: request
を追加する必要があります。しかし、スコープ定義は基本抽象サービスから継承されていると考えていたので、scope
パラメータを子サービスに再追加する必要はありません。
scope
パラメータの継承を禁止するのは意図した動作ですか?はいの場合、それが実装できない理由を知っているかもしれませんか?
感謝。完全なものとして、この正確な問題に関するSymfony2のgithub問題の追跡に関する[こちらの問題](https://github.com/symfony/symfony/issues/4620) Upvoteしかし、私は答えがあるときにのみ受け入れるでしょう:) – Matt
私は同じ問題を抱えていたので、私のために理解しなければなりませんでした。私はあなたのポストを見つけたので、誰かを助けるかもしれないここに投稿された:) – Venu