当前位置:首页 > PHP教程 > php面向对象 > 列表

PHP从零开始打造自己的MVC框架之路由类实现方法分析

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-24 20:35:44 浏览: 评论:0 

这篇文章主要介绍了PHP从零开始打造自己的MVC框架之路由类实现方法,结合实例形式分析了MVC框架路由类的原理及定义方法,需要的朋友可以参考下。

本文实例讲述了PHP从零开始打造自己的MVC框架之路由类实现方法,分享给大家供大家参考,具体如下:

在core目录下,新建一个名为lib的子目录,然后把我们前面写个route.php这个文件移动到这个目录下。

MVC框架 MVC路由类

因为route类文件路径修改,所以在实例化的时候:

new \core\lib\route();

然后我们来完善route.php:

  1. namespace core\lib; 
  2. class Route 
  3.   public $controller// 控制器 
  4.   public $action// 方法(动作) 
  5.   public function __construct() 
  6.   { 
  7.     // xxx.com/index.php/index/index 
  8.     // xxx.com/index.php/index 
  9.     /* 
  10.      * 1.隐藏index.php 
  11.      * 2.获取URL 参数部分 
  12.      * 3.返回对应控制器和方法 
  13.      * */ 
  14.     if(isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] != '/'){ 
  15.       // 处理成这种格式:index/index 
  16.       $path = $_SERVER['REQUEST_URI']; 
  17.       $pathArr = explode('/',trim($path,'/')); 
  18.       if(isset($pathArr[0])){ 
  19.         $this->controller = $pathArr[0]; 
  20.       } 
  21.       unset($pathArr[0]); 
  22.       if(isset($pathArr[1])){ 
  23.         $this->action = $pathArr[1]; 
  24.         unset($pathArr[1]); 
  25.       }else
  26.         $this->action = 'index'
  27.       } 
  28.       // url多余部分(参数部分)转换成 GET 
  29.       // id/1/str/2 
  30.       $count = count($pathArr) + 2; 
  31.       $i = 2; 
  32.       while($i < $count){ 
  33.         if(isset($pathArr[$i + 1])){ 
  34.           $_GET[$pathArr[$i]] == $pathArr[$i + 1]; 
  35.         } 
  36.         $i = $i + 2; 
  37.       } 
  38.       p($_GET); // 打印GET 
  39.     }else
  40.       $this->controller = 'index'// 默认控制器 
  41.       $this->action = 'index'// 默认方法 
  42.     } 
  43.   } 
  44. }

Tags: MVC框架 MVC路由类

分享到: