详解php框架Yaf路由重写
2018-09-07 14:21
通常为了友好的URL格式,会进行站点URL的重写,可以在webserver(Nginx)的配置中进行rewrite,也可在在程序端进行
以下使用Yaf框架进行URL的重写,进行一些整理,方便日后查看
YAF的URL重写方式主要有以下几种,可以综合使用
方式1:在配置文件中进行
之后在Bootstrap.php中添加初始化函数,函数名可按自己需求取,必需以_开头才会被调用
方式2:直接在程序中,以数组方式配置
以下函数是放在Bootstrap.php中
public function _initRoute(Ap_Dispatcher $dispatcher) { //在这里注册自己的路由协议,默认使用static路由 $router = Ap_Dispatcher::getInstance()->getRouter(); $routeConfig = array( $router = Ap_Dispatcher::getInstance()->getRouter(); $routeConfig = array( item => array( type => regex, match => #^/(softwaregame)/(.*).html$#, route => array(action => item), map => array( 1 => data_type, 2 => docid ), ), //正则匹配 category => array( type => regex, match => #^/(softwaregamevideo)/(.*)/(list_(.*).html)?$#, route => array(action => list ), map => array( 1 => data_type, 2 => cid,4 => page_num ), ), //使用动态结果 :a 表示action name => array( type => rewrite, //Yaf_Route_Rewrite route match => /user-list/:a/:id, //match only /user-list/开头的 route => array( controller => user, //route to user controller, action => :a, //使用动态的action ), ), ); $router->addConfig(new Ap_Config_Simple($routeConfig)); }
方式3:
/** * Add a rewrite route to Yaf_Router route stack */ Yaf_Dispatcher::getInstance()->getRouter()->addRoute(name, new Yaf_Route_rewrite( /product/:name/:id/*, //match request uri leading /product array( controller => product, //route to product controller, ), ) );
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
上一篇:PHP4实际应用经验篇(4)