瀏覽代碼

[FrameworkBundle] added an event to filter the controller arguments

Fabien Potencier 15 年之前
父節點
當前提交
df8ccb4696
共有 1 個文件被更改,包括 3 次插入1 次删除
  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;