Php Symfony2如何在不扩展ControllerResolver的情况下找到正确的控制器?

Php Symfony2如何在不扩展ControllerResolver的情况下找到正确的控制器?,php,symfony,Php,Symfony,我一直在看Symfony2代码,我不知道它如何在不扩展/重写ControllerResolver类的函数的情况下找到正确的控制器来使用。我认为默认的ControllerResolver无法为BundleName:Bundle:action之类的内容找到控制器。控制器在HTTPKernel类中解析(https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpKernel/HttpKernel.php) . 这就是

我一直在看Symfony2代码,我不知道它如何在不扩展/重写ControllerResolver类的函数的情况下找到正确的控制器来使用。我认为默认的ControllerResolver无法为BundleName:Bundle:action之类的内容找到控制器。

控制器在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()));
    }

解析控制器后,控制器类将出现在请求的uu controller属性中

您是否查看了Symfony\Bundle\FrameworkBundle\controller\ControllerNameParser?路由中定义的是BundleName:controller:action哦,是的,ControllerNameParser是我要查找的。