我正在尝试使用 Silex 做一些事情(它使用 Symfony 路由组件 - 所以答案也可能适用于 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)