我在嘗試使用Symfony2的Console組件創建一個命令時遇到了問題,完整的Symfony堆棧應用程序。symfony2 CLI [Symfony Component Debug Exception ContextErrorException]
如果我嘗試通過我的服務,通過DI,該命令將引發以下錯誤,當我嘗試運行它:如果我創建ContainerAwareCommand命令
[Symfony\Component\Debug\Exception\ContextErrorException]
Notice: Trying to get property of non-object
,並試圖讓我的服務與
$ this-> getContainer() - > get('mtgu.api.card.list.response.data');
我得到
[LogicException]
The container cannot be retrieved as the application instance is not yet set.
我的服務也在躍躍欲試地被加載,其在前端控制器使用。這個問題變得陌生,就像我通過一個存儲庫服務 - 我沒有遇到這個問題!
是否有一些技巧可以通過這種方式建立一個可以通過的服務?或者我弄亂了我的配置?
通過在DI擴展中執行此操作,我「自動加載」了所有服務,而不是通過主要services.yml包含它們。我認爲這或yml的排序包括可能影響它 - 但我已嘗試手動包括一切,但仍然沒有喜悅!
$finder = new Finder();
$finder->name('services.yml');
/**
* @var $file SplFileInfo
*/
foreach($finder->in(__DIR__.'/../') as $file) {
$loader = new Loader\YamlFileLoader($container, new FileLocator($file->getPath()));
$loader->load('services.yml');
}
供應商/包/命令/ services.yml
services:
mtgu.command.slugify:
class: MightyStudios\MtguBundle\Command\SlugifyCommand
tags:
- { name: console.command }
arguments:
- @mtgu.api.card.list.response.data
我想,這也許只是一些配置問題,但谷歌已經講不出話來找到答案!有沒有人遇到這個問題,他們可以擺脫任何光線!?
非常感謝
是的,如果我在使用ContainerAwareCommand時在構造函數中使用它,它會拋出它。但我想DI服務 - 所以擴展命令。那就是它拋出第一個無對象異常的時候。 – OnIIcE 2015-02-07 11:03:41
我試着再次創建命令擴展ContainerAwareCommand - 並在所有你說的地方使用getContainer,但我仍然得到一個 [Symfony \ Component \ Debug \ Exception \ ContextErrorException] 注意:試圖獲取non-對象 錯誤=( – OnIIcE 2015-02-07 19:20:17