路由设置
文章分页:
路由设置 - 1

自定义路由是框架功能调用的另一种模式,此方法不拘泥于固有的物理路径,可随意定制特定的规则。框架的路由设置也是基于应用,规则文件为应用根目录下的 route.php ,此文件可用于声明三项内容,分别是路由节点格式,自定义路由规则和自定义接口处理方法。具体格式见下例:

<?PHP  
//自定义路由格式  
$format = array(  
    'camel' => '[a-z]+([A-Z][a-z]+)+',  
);  
//自定义路由规则  
$rule = array(  
    array('/test_1/[any]', 'mystep::getModule'),  
    array('/test_2/[any]', 'app\test\route'),  
    array('/test_3/[camel]', array('app\sample\preCheck,3', 'app\sample\routeTest')),  
);  
//当前应用的数据接口  
$api = array(  
    'myapi' => 'app\test\api',  
);
  • $format - 数组格式,下标代表格式名称,值为格式内容,本例定义了小驼峰模式的字符串
  • $rule - 无下标(数字下标)数组,每个值为一个规则,包含两项的数组,分别为规则路径模式和处理函数,具体规则详见自定义路由。需要指出的是 mystep::getModule 是框架默认的处理自定义路由的入口方法,方法内已经为引用好了相关全局变量,并声明了主模版,子模版只要在执行脚本中将编译结果赋值给 $content 参数即可,虽然也支持用户自定义方法,但如无特殊情况,建议沿用系统所提供的方法。
  • $api - 数组格式,下标代表接口名称,值为处理方法(本例中为 app\test\ 命名空间下的 api 方法),假定应用名称为 test,API 调用地址为:/api/test/myapi/

在自定义路由的模式下,加设网址为 http://localhost/myroute/dir1/dir2?para1=111&para2=222  ,所显示内容如下,系统路径信息参数 $info_app 内容如下:

array(8) {  
  ["name"]=>  
  string(12) "框架示例"  
  ["app"]=>  
  string(6) "Sample"  
  ["ver"]=>  
  string(3) "1.0"  
  ["intro"]=>  
  string(18) "框架应用示例"  
  ["copyright"]=>  
  string(68) "版权所有 2021 Windy2000"  
  ["path"]=>  
  array(3) {  
    [0]=>  
    string(8) "myroute"  
    [1]=>  
    string(4) "dir1"  
    [2]=>  
    string(4) "dir2"  
  }  
  ["para"]=>  
  array(2) {  
    ["para1"]=>  
    string(3) "111"  
    ["para2"]=>  
    string(3) "222"  
  }  
  ["route"]=>  
  string(19) "/myroute/dir1/dir2"  
}

以上内容与路径调用模式基本一样,唯一的区别就是所有路径信息均被记录下来,以便于程序进一步处理。

 

上一篇:预执行脚本
下一篇:执行顺序