我试图使用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