徒手打造你的MVC框架
Posted 品轩PHP
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了徒手打造你的MVC框架相关的知识,希望对你有一定的参考价值。
书接上文、上文说道入口文件以及函数库的部署、那么这节咱们就来说下路由类的编写以及类的自动加载机制。
1、类的自动加载
首先我们在入口文件写上如下代码
//当调用未定义的类的时候自动加载该类
spl_autoload_register("\core\pxphp::load");//在核心文件中、定义一个load方法。
spl_autoload_register();//这是一个自动加载的函数、在PHP中、当我们实例化一个不存在的类的时候、会自动触发此函数、看个小栗子:
我们写上如上代码之后、然后实例化一个不存在的类、试试:
然后打开页面看:
图片不够、代码来补:
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模块
如下:
然后在项目的根目录新建一个 .htaccess 的文件 、打开添加如下代码:
<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框架的主要内容,如果未能解决你的问题,请参考以下文章