作者:郑瀚升 | 来源:互联网 | 2023-07-12 08:49
后端开发|php教程php,详解,实例后端开发-php教程本篇文章主要介绍php框架Yaf路由重写_php实例详解,感兴趣的朋友参考下,希望对大家有所帮助。cmvc小项目源码,ub
后端开发|php教程
php,详解,实例
后端开发-php教程
本篇文章主要介绍php框架Yaf路由重写_php实例详解,感兴趣的朋友参考下,希望对大家有所帮助。
c mvc小项目源码,ubuntu 不见小键盘,tomcat主备动态切换,爬虫伪造mac,php 递归转换率,淘宝seo和百度seolzw
通常为了友好的URL格式,会进行站点URL的重写,可以在webserver(Nginx)的配置中进行rewrite,也可在在程序端进行
fastzipevents 源码,打开ubuntu根目录,怎么删除tomcat的项目,布隆爬虫,php评论及回复功能,浪迹seolzw
以下使用Yaf框架进行URL的重写,进行一些整理,方便日后查看
移动广告源码,vscode本地修改记录,桌面管理 ubuntu,tomcat拿shell,提升sqlite,北京网页设计公司哪家好,mysql数据库密码字段,重启mysql服务器,wordpress 置顶插件,前端框架考虑,爬虫程序线程,php amqp,重庆市网站seo,springboot鉴权,dede自动分页标签,简单网站源码下载,告白网页,bootstrap超市模板,后台和数据库,一个页面多个左右箭头图片滚动,完善销售内部管理系统,人人商城v3小程序插件lzw
YAF的URL重写方式主要有以下几种,可以综合使用
方式1:在配置文件中进行
;a rewrite route match request /product/*/*routes.route_name.type="rewrite"routes.route_name.match="/product/:name/:value"routes.route_name.route.cOntroller=productroutes.route_name.route.action=info;a regex route match request /list/*/*routes.route_name1.type="regex"routes.route_name1.match="#^list/([^/]*)/([^/]*)#"routes.route_name1.route.cOntroller=Indexroutes.route_name1.route.action=actionroutes.route_name1.map.1=nameroutes.route_name1.map.2=value;a simple route match /**?c=controller&a=action&m=moduleroutes.route_name2.type="simple"routes.route_name2.cOntroller=croutes.route_name2.module=mroutes.route_name2.action=a;a simple router match /**?r=PATH_INFOroutes.route_name3.type="supervar"routes.route_name3.varname=r;a map route match any request to controllerroutes.route_name4.type="map"routes.route_name4.cOntrollerPrefer=TRUEroutes.route_namer.delimiter="#!"
之后在Bootstrap.php中添加初始化函数,函数名可按自己需求取,必需以_开头才会被调用
getConfig(); Yaf_Registry::set("config", $config); } public function _initRoute(Yaf_Dispatcher $dispatcher) { $router = $dispatcher->getRouter(); /** * we can add some pre-defined routes in application.ini */ $router->addConfig(Yaf_Registry::get("config")->routes); /** * add a Rewrite route, then for a request uri: * http://***/product/list/22/foo * will be matched by this route, and result: * * [module] => * [controller] => product * [action] => info * [method] => GET * [params:protected] => Array * ( * [id] => 22 * [name] => foo * ) * */ $route = new Yaf_Route_Rewrite( "/product/list/:id/:name", array( "controller" => "product", "action" => "info", ) ); $router->addRoute('dummy', $route); }?>
方式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" => "#^/(software|game)/(.*).html$#", "route" => array('action' => 'item'), "map" => array( 1 => 'data_type', 2 => 'docid' ), ), //正则匹配 "category" => array( "type" => "regex", "match" => "#^/(software|game|video)/(.*)/(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, ), ) );
PHP7.1内安装yaf扩展步骤详解
Yaf框架安装指南
PHP7.1安装yaf扩展的方法