我将Kohana应用程序转换为Symfony2。在Kohana我必须注册一个自定义自动加载器,以使框架看到我的控制器给定我的首选目录结构。在Symfony2中是否有一种优雅的方式来实现到控制器的路由,其中"控制器"目录是一个较低的级别。例如。 Src / Somename / aBundle /主题/前端/控制器/ defaultController.php
答案 0 :(得分:2)
您可以将控制器放在任何位置,只需将其导入routing.yml
:
controller:
resource: @MyBundle/Theme/Frontend/Controller/
type: annotation
当然,这只是一个例子。您可以在此处找到有关路由的更多信息和大量示例:http://symfony.com/doc/current/book/routing.html
答案 1 :(得分:0)
使用YAML资源文件的_controller键是不可能的。这是执行的Symfony2代码:
// classes.php,parse方法
$try = $b->getNamespace() . '\\Controller\\' . $controller . 'Controller';
if (class_exists($try)) {
return $try . '::' . $action . 'Action';
}
正如您所见,“Controller”在Bundle命名空间之后连接在一起。自动加载将使用命名空间作为文件路径,永远不会找到控制器。
如果您使用_Controller您的控制器必须位于Bundle目录中的“Controller”文件夹下。