我試圖使用Silex的做一些事情(使用的Symfony路由組件 - 這樣的答案可以適用於Symfony的爲好)在Silex/Symfony中路由。提供了一條默認路由
我加入的Silex到遺留應用程序提供路由,但我需要尊重現有的用於加載文件的應用程序默認實現(這只是從指定的URL從文件系統加載文件)。
編輯:澄清: 在進行一系列引導調用後,現有文件作爲包含在父模板中的文件系統加載。
我發現,如果沒有定義的路徑來匹配傳統頁面,Silex會拋出一個異常。
我真的需要一種方法來提供處理這些遺留頁面的默認(回退)機制 - 但我的模式必須匹配整個url(不只是一個片段)。
這可能嗎?
// Include Silex for routing
require_once(CLASS_PATH . 'Silex/silex.phar');
// Init Silex
$app = new Silex\Application();
// route for new code
// matches for new restful interface (like /category/add/mynewcategory)
$app->match('/category/{action}/{name}/', function($action, $name){
//do RESTFUL things
});
// route for legacy code (If I leave this out then Silex
// throws an exception beacuse it hasn't matched any routes
$app->match('{match_the_entire_url_including_slashes}', function($match_the_entire_url_including_slashes){
//do legacy stuff
});
$app->run();
這必須是一個常見用例。我想提供一種方法來有靠遺留代碼RESTful接口(負載/myfolder/mysubfolder/my_php_script.php)
我有一個問題,關於你的問題,不應該URL重寫上已經阿帕奇處理現有網絡沒有將URL映射到您的index.php文件?聽起來很奇怪...... – mpm
@camus不,因爲我需要通過前端控制器路由每個請求,以引導應用程序(安全性,數據庫連接等)。編輯:我已經添加了一個問題的澄清 – calumbrodie