diff --git a/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php b/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php index 44f722bf280d..b258a38fcdfb 100644 --- a/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php +++ b/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php @@ -96,8 +96,12 @@ public function getArguments(Request $request, $controller) if (is_array($controller)) { $r = new \ReflectionMethod($controller[0], $controller[1]); } elseif (is_object($controller)) { - $r = new \ReflectionObject($controller); - $r = $r->getMethod('__invoke'); + if ($controller instanceof \Closure) { + $r = new \ReflectionFunction($controller); + } else { + $r = new \ReflectionObject($controller); + $r = $r->getMethod('__invoke'); + } } else { $r = new \ReflectionFunction($controller); }