2011-06-20 58 views
7

我似乎無法得到任何東西通過根路徑到目前爲止:如何在Silex PHP Framework項目中設置控制器?

你把所有的控制器調用在app.php文件?

$app->get('/', function ($id) { 
    ... 
}); 

$app->get('/about', function ($id) { 
    ... 
}); 

或者你把它們放在不同的文件中? 到目前爲止,get get方法工作正常,並呈現一個樹枝模板,但任何東西都不會做任何事情。

+0

你的意思是'/ about'處理程序永遠不會被調用嗎? - 你需要在文件前面註冊更具體的處理程序 - '/'將始終匹配 – meouw

+0

@meouw'/'不匹配'/ about'。 '/ {var}'然而,會的。 – igorw

+0

@igorw - 感謝您的更正:) – meouw

回答

15

Silex是一個微框架。它使您能夠在單個文件中定義您的應用程序。但這並不意味着你必須這樣做。

我通常做什麼限定所有的控制器在一個app.php文件,但src目錄內提取可重複使用的零件成類,例如src/ProjectName/SomeClass.php,其可被自動加載和也單元進行測試。

現在,如果控制器的數量增長,可以將應用程序拆分爲「模塊」並將它們安裝到主應用程序下(例如,將管理面板安裝在/admin下)。 Silex的支持安裝,就像這樣:

require_once __DIR__.'/silex.phar'; 

$app = new Silex\Application(); 

$app->mount('/admin', new Silex\LazyApplication(__DIR__.'/admin.php')); 

,詳細瞭解裝配,從硅石文檔退房Reusing applications

+0

Mount(),優秀。 – Failpunk

+3

該鏈接不再有效。 Provder doc在這裏:http://silex.sensiolabs.org/doc/providers.html – lucifurious

相關問題