0
我試圖在Symfony 2中構建我的第一個Compiler Pass。現在,我只是試圖從FrameWorkBundle中獲取核心event_dispatcher服務一個SampleBundle,但我得到這個錯誤:Symfony 2.5.6錯誤InvalidArgumentException:服務定義「event_dispatcher」不存在
error InvalidArgumentException: The service definition "event_dispatcher" does not exist.
這裏是我的編譯器代碼:
<?php
namespace Me\SampleBunlde\DependencyInjection\Compiler;
use Symfony\Component\DependencyInjection\Compiler;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
class RegisterListenersPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
$definition = $container->getDefinition('event_dispatcher');
}
}
?>
我有點驚訝,因爲我下面一步步professionnal Symfony的書誰向我保證我會用這個ID找到這個服務。
我已經做了一些研究,我發現只有debug.event_dispatcher服務是可用的。然後我檢查別名,看到有一個名爲'event_dispatcher'的專用別名指向debug.event_dispatcher。所以我真的很困惑。我想知道:
- 爲什麼Alias是私人的?我是否需要將他設置爲公開或者是否是錯誤的方式?
- 爲什麼Symfony不會自動解釋我的event_dispatcher調用?
謝謝你的幫忙!
感謝您的提示! – Aphax 2014-11-02 22:55:42