我一直在查看 Symfony2 代码,但在不扩展/覆盖 ControllerResolver 类的功能的情况下,我无法弄清楚它是如何找出要使用的正确控制器的。我不认为默认的 ControllerResolver 能够为控制器找到像 BundleName:Bundle:action 这样的控制器。
问问题
650 次
1 回答
0
控制器在 HTTPKernel 类 (https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpKernel/HttpKernel.php) 中解析。这就是那里发生的事情
// load controller
if (false === $controller = $this->resolver->getController($request)) {
throw new NotFoundHttpException(sprintf('Unable to find the controller for path "%s". Maybe you forgot to add the matching route in your routing configuration?', $request->getPathInfo()));
}
一旦控制器被解析,控制器类就会出现在请求的 __controller 属性中。
于 2012-04-17T12:39:02.877 回答