自定义控制器目录结构Symfony2

时间:2014-03-30 23:56:12

标签: symfony

我将Kohana应用程序转换为Symfony2。在Kohana我必须注册一个自定义自动加载器,以使框架看到我的控制器给定我的首选目录结构。在Symfony2中是否有一种优雅的方式来实现到控制器的路由,其中​​"控制器"目录是一个较低的级别。例如。 Src / Somename / aBundle /主题/前端/控制器/ defaultController.php

2 个答案:

答案 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”文件夹下。

相关问题