Bläddra i källkod

[FrameworkBundle] added an event to filter the controller arguments

Fabien Potencier 15 år sedan
förälder
incheckning
df8ccb4696
1 ändrade filer med 3 tillägg och 1 borttagningar
  1. 3 1
      src/Symfony/Bundle/FrameworkBundle/Controller/ControllerManager.php

+ 3 - 1
src/Symfony/Bundle/FrameworkBundle/Controller/ControllerManager.php

@@ -6,6 +6,7 @@ use Symfony\Components\HttpKernel\LoggerInterface;
 use Symfony\Components\HttpKernel\Controller\ControllerManagerInterface;
 use Symfony\Components\HttpKernel\HttpKernelInterface;
 use Symfony\Components\HttpFoundation\Request;
+use Symfony\Components\EventDispatcher\Event;
 use Symfony\Components\DependencyInjection\ContainerInterface;
 
 /*
@@ -191,7 +192,8 @@ class ControllerManager implements ControllerManagerInterface
      */
     public function getMethodArguments(Request $request, $controller)
     {
-        $path = $request->path->all();
+        $event = $this->container->get('event_dispatcher')->filter(new Event($this, 'controller_manager.filter_controller_arguments', array('controller' => $controller, 'request' => $request)), $request->path->all());
+        $path = $event->getReturnValue();
 
         list($controller, $method) = $controller;