diff --git a/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php b/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php index e2e550e54267d..d875416717a59 100644 --- a/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php +++ b/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php @@ -78,7 +78,7 @@ public function getController(Request $request) if (false === strpos($controller, ':')) { if (method_exists($controller, '__invoke')) { - return new $controller(); + return $this->instantiateController($controller); } elseif (function_exists($controller)) { return $controller; } @@ -167,6 +167,18 @@ protected function createController($controller) throw new \InvalidArgumentException(sprintf('Class "%s" does not exist.', $class)); } - return array(new $class(), $method); + return array($this->instantiateController($class), $method); + } + + /** + * Returns an instantiated controller + * + * @param string $class A class name + * + * @return object + */ + protected function instantiateController($class) + { + return new $class(); } }