MVC-路由route

来源:互联网 发布:店铺开通淘宝客的条件 编辑:程序博客网 时间:2024/06/10 20:44

在路由类中我们有一个构造函数

首先在构造函数外定义变量控制器名和方法名


    public $ctrl;//控制器变量名    public $action;//方法变量名

在构造函数内先判断根路径

    if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI']!="/")    {        }    else    {          }


如果符合路径格式

那么在内获取URL路径并定义在域名后的第一个参数为控制器名

第二个参数为控制器方法名和之后的参数定义为GET传值数转译;

    //获取url路径            $path = $_SERVER['REQUEST_URI'];            //分开路径名称            $arr = explode('/',trim($path,'/'));            //判断控制器            if (isset($arr[0]))             {                $this->ctrl = $arr[0];            }            unset($arr[0]);            //判断方法            if (isset($arr[1]))             {                    $this->action = $arr[1];                unset($arr[1]);            }            else            {                $this->action = "index";            }            //url多余部分转成 Get            //id/1/str/2/test/3            $count = count($arr) + 2;            for ($i=2; $i < $count; $i=$i+2) {                 if (isset($arr[$i + 1]))                {                    $_GET[$arr[$i]] = $arr[$i+1];                }                             }
如果不符合判断的路径格式那么默认为index控制器和index方法

$this->ctrl = "index";$this->action= "index";

代码整合:

<?php namespace roce\lib;class route{/** * $ctrl 控制器 * $action 方法 * @var [type] */public $ctrl;public $action;public function __construct(){if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI']!="/"){//获取url路径$path = $_SERVER['REQUEST_URI'];//分开路径名称$arr = explode('/',trim($path,'/'));//判断控制器if (isset($arr[0])) {$this->ctrl = $arr[0];}unset($arr[0]);//判断方法if (isset($arr[1])) {$this->action = $arr[1];unset($arr[1]);}else{$this->action = "index";}//url多余部分转成 Get//id/1/str/2/test/3$count = count($arr) + 2;for ($i=2; $i < $count; $i=$i+2) { if (isset($arr[$i + 1])){$_GET[$arr[$i]] = $arr[$i+1];} }}else{$this->ctrl = "index";$this->action= "index";}}}?>







0 0
原创粉丝点击