0
点赞
收藏
分享

微信扫一扫

徒手打造你的MVC框架(二)

hoohack 2022-10-17 阅读 114

书接上文、上文说道入口文件以及函数库的部署、那么这节咱们就来说下路由类的编写以及类的自动加载机制。


        1、类的自动加载

        首先我们在入口文件写上如下代码


        //当调用未定义的类的时候自动加载该类

        spl_autoload_register("\core\pxphp::load");//在核心文件中、定义一个load方法。

        spl_autoload_register();//这是一个自动加载的函数、在PHP中、当我们实例化一个不存在的类的时候、会自动触发此函数、看个小栗子:

徒手打造你的MVC框架(二)_php

我们写上如上代码之后、然后实例化一个不存在的类、试试:

徒手打造你的MVC框架(二)_自动加载_02

然后打开页面看:

徒手打造你的MVC框架(二)_php_03

这里输出了、我们刚才使用p函数打印的类的地址、这里理解之后、我们作进一步的分析、如下图:

徒手打造你的MVC框架(二)_加载_04

图片不够、代码来补:

static public function load($class){

//$class 就是没有找的文件名称 \core\route

//判断是否已经加载过

if(isset($classMap[$class])){

//如果已经加入、则返回true、不用再次做处理

}else{

//如果没有加载、那就执行文件的处理、并引入

$class=str_replace("\\","/",$class);//将所有的反斜杠替换成 / 

$file=PXPHP."/".$class.".php";//拼接文件的路径

// p($file);die;

//判断文件是否存在

if(is_file($file)){

//如果文件存在、就引入文件

include $file;

//引入文件、并且将文件的路径加入

self::$classMap[$class]=$file;//当文件加载进来之后、将文件加入到$classMap

}else{

return false;//如果不是文件、则直接返回false

}

}

}


嗯、到这里之后、不报错了、因为我们已经做了处理、自动加载就酱紫OK了、然后我们来做路由类。

        2、路由类的实现

处理路由我们需要做如下几步操作:

                //1、隐藏 index.php

//2、识别控制器

//3、识别方法名

//4、识别参数

隐藏index.php、需要开启Apache的mod_rewrite模块

如下:

徒手打造你的MVC框架(二)_加载_05


然后在项目的根目录新建一个 .htaccess 的文件 、打开添加如下代码:

徒手打造你的MVC框架(二)_自动加载_06

<IfModule mod_rewrite.c>  

RewriteEngine on  

RewriteCond %{REQUEST_FILENAME} !-d  

RewriteCond %{REQUEST_FILENAME} !-f  

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]  

</IfModule> 

这样就隐藏了index.php文件、

徒手打造你的MVC框架(二)_自动加载_07

变成如下:

徒手打造你的MVC框架(二)_php_08

有点晚了,先酱紫、路由解析、明天继续、该回去录制视频了

徒手打造你的MVC框架(二)_加载_09


第二讲已录制完毕、有需要课件的进QQ群下载、视频暂不提供下载!


长按二维码识别、随时关注最新动态喔

徒手打造你的MVC框架(二)_自动加载_10

举报

相关推荐

0 条评论