2016-06-24 56 views
1

運行的Symfony不調試表明私人服務:集裝箱 - 顯示,私人

app/console debug:container --show-private 

沒有列出與public: false如宣稱的服務:

another_service: 
     public: false 
     class: MineBundle\Service\FirstService 

但是,如果我運行app/console debug:container --show-private | wc -lapp/console debug:container | wc -l我會得到不同的結果。

用symfony 2.8和3.1試過,得到同樣的行爲。

有什麼想法?

謝謝!

+1

愚蠢地很明顯,但你有沒有確保你的服務文件正在被加載,並且你已經清除了緩存? – qooplmao

回答

1

Sorry, it's in the doc :)

如果私人服務只是作爲一個參數只是一個其他 服務,它將不會被調試顯示:集裝箱命令,甚至 使用--show-時私人選項。有關 的更多詳細信息,請參見聯機專用服務。

然後

是什麼讓私人服務特別的是,如果他們只注射一次 ,他們從服務轉換爲內聯實例(例如 新PrivateThing())。這增加了容器的性能。

+0

是的,它現在更有意義。猜猜我實在想不到這只是一個可見性控制的事情,實際上是爲了優化容器。 :) – Viorel