徒手打造你的MVC框架

Posted 品轩PHP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了徒手打造你的MVC框架相关的知识,希望对你有一定的参考价值。

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


        1、类的自动加载

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


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

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

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

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

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

然后打开页面看:

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

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

图片不够、代码来补:

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框架(二)


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

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

<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框架(二)

变成如下:

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

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



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

以上是关于徒手打造你的MVC框架的主要内容,如果未能解决你的问题,请参考以下文章

徒手撸一个Spring MVC框架

MVC源码学习:打造自己的MVC框架(上)

用分层结构打造苗条 MVC 框架 |译文

[转]1小时内打造你自己的PHP MVC框架

用composer 快速打造自己的PHP MVC框架

打造 高性能,轻量级的 webform框架-----如何替换webform的垃圾控件(第一天)