Symfony2: Getting Route in Page Load Event Listener

php, symfony

Solution

All kernel events extend `KernelEvent`, which means you can simply acess the `Request` object via `$event->getRequest()`.

public function onKernelController(FilterControllerEvent $event)
{
    $request = $event->getRequest();

    // Matched route
    $_route  = $request->attributes->get('_route');

    // Matched controller
    $_controller = $request->attributes->get('_controller');

    // All route parameters including the `_controller`
    $params      = $request->attributes->get('_route_params');
}

If you'd like to get plain route attributes, simply filter out all the elements prefixed with "_".

Choosing the proper event to listen to depends on your specific use case.

Problem

How can I get the route in a page load even listener? I have the following code in services.yml: ``` page_load_listener: class: Acme\MainBundle\EventListener\PageLoadListener arguments: [@security.context, @session] tags: - { name: kernel.event_listener, event: kernel.controller, method: onKernelController, priority: 64 } ``` In the PageLoadListener class I have the corresponding method: ``` public function onKernelController(FilterControllerEvent $event) { // Some code I need to execute that needs the route arguments } ``` The problem seems to be that the route and arguments are not available. What am I missing? Which event would I need to pass to pick up the route and it's arguments? Thanks, JB

Original source