Aphax
Aphax

Reputation: 179

Symfony 2.5.6 error InvalidArgumentException: The service definition "event_dispatcher" does not exist

I'm trying to build my first Compiler Pass in Symfony 2. For now, I'm just trying to get the core event_dispatcher service from FrameWorkBundle inside a SampleBundle, but I get this error :

error InvalidArgumentException: The service definition "event_dispatcher" does not exist.

Here is the code for my compiler :

<?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');
    }
}
?>

I'm a bit surprised since I'm following step by step a professionnal Symfony book who assures me that I will find this service with that id.

I've done some researches about that, and I discovered that only the debug.event_dispatcher service was avaible. Then I checked for aliases and saw that there was a private Alias named 'event_dispatcher' pointing to debug.event_dispatcher. So I'm really confused about all that. And I'm wondering :

Thank you for your help !

Upvotes: 0

Views: 768

Answers (1)

Wouter J
Wouter J

Reputation: 41934

Use findDefinition() instead of getDefinition(). findDefinition also looks for aliases.

Upvotes: 6

Related Questions