MVC框架路由模块的解析
来源:互联网 发布:淘宝账号注销后支付宝 编辑:程序博客网 时间:2024/05/22 03:53
1.我们都知道每个框架它们的路由都是不一样的,例如YII框架,它的路由就是%F,而TP3.2框架是以 / 区分,而我们自己的框架
我们可以自己去设计,这都是无所谓的,首先我不得不说一下,路由主要是用PHP函数:$_SERVER来分割访问地址,然后从中找到
我们所要访问的控制器,方法,以及所传的参数,我们还需要做的就是对参数的一种判断,判断什么呢?就是如果访问地址我写成这样
www.test/Home/Index/index/id/2/3,这样的网址,我们就需要对参数进行判断了,下面看一下对参数进行循环判断的代码:
$count = count($patharr)+3;// p($count);die; $i = 3; while($i<$count) { if(isset($patharr[$i +1])) { $_GET[$patharr[$i]] = $patharr[$i+1]; } $i = $i+3; }因为我们对访问的网址进行了分割,从而方便我们找出所指向的模块,控制器以及方法。然而分割后的参数名称是【3】,所以我们进行了+3,
下面是我们框架的路由模块的完整代码:
<?php/** * Created by PhpStorm. * User: 59106 * Date: 2017/6/27 * Time: 20:19 */namespace core\lib;class rount{ public $mo;public $ctrl; public $action; public function __construct() { /* * 隐藏index.php * 在这里要想办法获取模块(admin/home) * 获取当中的参数部分 * 获取当中的控制器和方法 */ if(isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI']!='/') { $path = $_SERVER['REQUEST_URI']; //p($path);exit; $patharr = explode('/',trim($path,'/')); //print_r($patharr);exit; /* * Array ( [0] => Home [1] => Index [2] => index ) *///首先我们要想一下,如果他只输入一个Home的话,就默认为Home/index/index,那样的话,我们就需要改一下代码了 if(isset($patharr[0])) { $this->mo = $patharr[0]; } unset($patharr[0]); if(isset($patharr[1])) { $this->ctrl = $patharr[1]; unset($patharr[1]); }else{ $this->ctrl = 'index'; } if(isset($patharr[2])) { $this->action = $patharr[2]; unset($patharr[2]); }else{ $this->action = 'index'; }// if(isset($patharr[0]))// {//// $this->ctrl = $patharr[0];//// }//// unset($patharr[0]);//// if(isset($patharr[1])){//// $this->action = $patharr[1];//// unset($patharr[1]);//// }else{//// $this->action = 'index';//// } //p($patharr);die; $count = count($patharr)+3;// p($count);die; $i = 3; while($i<$count) { if(isset($patharr[$i +1])) { $_GET[$patharr[$i]] = $patharr[$i+1]; } $i = $i+3; }// p($_GET);exit; }else{ $this->mo = 'Home'; $this->ctrl = 'index'; $this->action = 'index'; } }}
阅读全文
0 0
- MVC框架路由模块的解析
- 【MVC框架】路由机制
- MVC框架-路由
- MVC框架-路由分发总结
- nodejs路由解析,MVC架构
- MVC框架的封装(三)路由类
- MVC框架的封装(三)路由类
- PHP搭建自己的MVC框架5 路由类
- MVC框架入口文件的解析
- mvc的路由
- Mvc路由的顺序
- yaf 框架路由解析过程
- Android 的媒体路由功能应用与框架解析
- Android 的媒体路由功能应用与框架解析 MediaRouter
- MVC框架解析
- laravel框架MVC解析
- PHP MVC框架路由学习笔记
- mvc框架封装(二)路由类篇
- 声明!!!!!!!!!!!!!!!!!!!
- JS(初学)
- Kotlin-类型安全的建设者
- asp.net web api实例
- 智融集团CTO齐鹏详析:AI如何处理金融领域的弱特征数据?丨CCF-GAIR 2017
- MVC框架路由模块的解析
- 史上最简单的 MySQL 教程(二十五)「数据的高级操作 之 查询(下)」
- 搭建windows git服务器
- CPU 发热的几个可能原因
- c#的基础练习题
- win7系统 深度学习环境 anaconda+tensorflow+jupyter notebook轻松搭建
- 使用react-native启动安卓项目时JS SERVER 未启动报错(Starting JS server...)
- 中科院罗平演讲全文:自动撰写金融文档如何实现,用 AI 解救“金融民工” | CCF-GAIR 2017
- Druid在项目中的应用