2017-02-25 98 views
1

我只想知道如何讓我的編譯器通過Symfony服務的所有命令?Symfony CLI命令和編譯器通過

是否有意思通過實現的接口來查找服務?或者也許我必須標記它們全部?

謝謝, KL。

+0

這可能有所幫助:https://www.tomasvotruba.cz/blog/2017/02/12/drop-all-service-tags-in-your-nette-and -symfony應用/ – Cerad

回答

0

您應該標記它們全部。沒有辦法檢索某些預期的類/接口的實例的服務。

無論如何,你可以獲得所有,遍歷它們,並只過濾那些擴展你的接口的東西。但速度要慢得多,而且是最糟糕的做法。

0

我希望我能正確理解你的問題。如果你想拿到那麼你的應用程序中定義的所有命令:

$kernel = $this->container->get('kernel'); 
    $application = new Application($kernel); 
    $commands = $application->all('doctrine'); 
    var_dump($commands);die; 

這個例子用新的symfony的安裝,你可以獲取所有的學說命令。只需用您的命令前綴替換「教條」即可。

看一下\ Symfony \ Bundle \ FrameworkBundle \ Console \ Application,特別是registerCommands方法。我正在使用最新版本Symfony 3.2.4

相關問題