我正在寻找一个非常轻量级的路由框架(与php-skel一起使用)。
我想调查的第一件事是在php文件中指定重写规则(“not found”处理程序),其方式与在服务器配置中指定的方式类似。
这是一个潜在的例子(但我想知道哪些框架提供了这种轻量级的东西):
文件route.php:
route('application/api', '/api/index.php');
route('application', '/application/index.php');
文件appplication / index.php:
route(':module/:action', function($module, $action) {
include(__DIR__ . '/' . $module . '/' . $action . '.php');
});
什么是轻量级路由框架/功能或技术?
答案 0 :(得分:2)
php方式:
http://example.com/index.php/controller/action/variables
$routing = explode("/" ,$_SERVER['PATH_INFO']);
$controller = $routing[1];
$action = $routing[2];
$variables = $routing[3];
答案 1 :(得分:0)
PHP有一个parse url函数,可以很容易地用于路由。 然后,您可以在返回的路径部分调用explode()以获取url组件的数组。
答案 2 :(得分:-2)
PHP不能像mod_rewrite那样重写URL,它只能重定向到其他页面,这基本上会使服务器上的点击次数加倍(1次点击php脚本,第2次点击重定向目标)。
但是,您可以让PHP脚本动态加载“重定向”页面的内容:
switch($_GET['page']) {
case 1:
include('page1.php');
break;
case 2:
include('page2.php');
break;
default:
include('page1.php');
}
这对用户来说非常透明,你可以获得与mod_rewrite基本相同的效果。使用适当的query和path_info参数,您可以很好地复制mod_write“pretty”url。