2014-03-30 23 views
0

我正在將Kohana應用程序轉換爲Symfony2。在Kohana中,我必須註冊一個自定義自動加載器,以使框架能夠根據我的首選目錄結構查看我的控制器。在Symfony2中有一種優雅的方式來實現路由到「控制器」目錄低一級的控制器。例如。 SRC/Somename/aBundle /主題/前端/控制器/ defaultController.php自定義控制器目錄結構Symfony2

回答

1

你可以把你的控制器無論你想,只是將它們導入您的routing.yml

controller: 
    resource: @MyBundle/Theme/Frontend/Controller/ 
    type: annotation 

當然,這僅僅是一個例子。你可以在這裏找到更多的信息和大量的路由示例:http://symfony.com/doc/current/book/routing.html

+0

好吧,我添加了適當的資源字符串,現在它找到了我的控制器命名空間。但我仍然不明白如何創建路由,以便連接到控制器。 – MageNewbie

+0

對於你的例子,路由的_controller參數在routing.yml中看起來如何? – MageNewbie

+1

編輯,好吧,我明白了。謝謝 !!愚蠢的我沒有添加註釋到控制器:)例如。/** * @Route(「/ test」) * /但有沒有辦法做這樣的自定義路由使用yaml而不是註釋? – MageNewbie

0

它不可能使用YAML資源文件的_controller鍵。這是所執行的Symfony2的代碼:

//classes.php,解析方法

$try = $b->getNamespace() . '\\Controller\\' . $controller . 'Controller'; 
if (class_exists($try)) { 
     return $try . '::' . $action . 'Action'; 
} 

正如你所看到的「控制器」的捆綁命名空間後串聯。自動加載將使用命名空間作爲文件路徑,並且控制器將永遠不會找到。

如果您使用_Controller您的控制器必須位於您的Bundle目錄中的「Controller」文件夾下。