序言
基础
配置
常量配置
路由配置
加载配置
分组配置
域名配置
架构
路由
控制器
模板
调试
安全
工具
部署
路由配置
LMLPHP的路由采用正则匹配。示例如下:
<?php

// after require LMLPHP

// Route rule
$myrouter = array(
    
'/^(?:\/index\.php)?\/test\/([a-z_\-]+)\/?([\d]*)/i' => array(
        
'param'=>array('name','id'), 
        
// you can get value through $_GET['name'],$_GET['id']
//        'callback'=>array('test','hello'), 
        // or 'callback'=>array('func') , 
        // or 'callback'=>array('class::func') since php 5.2.3 
        // or 'callback'=>array(__NAMESPACE__.'\class::func') since php 5.3 
        // if callback is set, m,a will not work.
        
'm'=>'test'// module name
        
'a'=>'index' // action name
    
)
);

// start app
lml()->app()->addRouter($myrouter)->run();
路由的配置采用数组的形式,key为正则,value对应一个数组。value中含有四个参数可以设置,下面对参数进行解释:
param 数组中的参数对应正则中子匹配项匹配的值,他们是一一对应的关系,采用$_GET['参数名']的方式获取值。
callback 回调函数对应的数组若是一个参数,则调用的是方法名;若是两个参数,第一个是类名,第二个是静态方法名,则调用类的静态方法。
如果设置了callback,参数"m"和"a"将不会生效。参数"m"对应的是模块控制器类名(不包含前缀module),参数"a"对应的是控制器的方法名。
上面的例子匹配URL为"/test/英文字母-_"或"/test/英文字母-_/数字"时,调用ModuleTest的index方法。
上面的例子如果将callback的注释打开,则调用类test的静态方法hello()。

后置路由配置
后置路由系路由未匹配上,控制器未找到,显示层也未找到,然后执行的最后一条路由。在这里您可以返回404等操作。如下示例:
<?php

$lastRouter 
= array('last');

lml()->app()->addRouter($myrouter)->addLastRouter($lastRouter)->run();

function 
last(){
    
// handle not found
}
上面的例子定义了lastRouter,当路由、控制器、显示层均为找到时然后执行方法last。

应用举例
细心的童鞋,一定会发现,小米的官网有时候会在首页做活动,我们访问http://www.mi.com和http://www.mi.com/index.php展示的内容是完全不一样的。LMLPHP可以轻松实现这种不一样的展示的效果。如下代码示例:
<?php
// Route rule
$myrouter = array(
// ...
    
'/^\/$/'=> array(
        
'callback'=>array('entrance'),
    ),
    
'/^\/index\.php$/'=> array(
        
'callback'=>array('entrance_index')
    )
);
将上面的路由配置加入,即可实现。LMLPHP强大的路由功能等待您来发掘^_^。
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.003966(s)
2024-05-01 17:12:31 1714554751