宝哥软件园

PHP从头开始构建自己的MVC框架 比如自动加载实现方法

编辑:宝哥软件园 来源:互联网 时间:2021-08-23

本文的例子讲述了PHP如何从头开始构建自己的MVC框架,等等。分享给大家参考,如下:

我们之前介绍了MVC框架的入口文件,然后我们希望完成“自动加载类”的功能,我们把它放到了Imooc的基础类中。

coreimooc.php:

?phpnamespace核心;类Imooc { public static $ CLaSS map=array();静态公共函数run(){ p(' ok ');$ route=new core route();}/*自动加载函数*/静态公共函数load($ class){//自动加载类库//new core route()//$ class=' core route '/imooc。/core/route . PHP ' if(isset($ class map[$)} else { $ class=str _ replace(' ','/',$ class);$file=IMOOC。'/'.$class。PHP ';if(is _ file($ file)){ include $ file;self : $ CLaSS map[$ CLaSS]=$ CLaSS;} else { return false}}}}在上面的代码中,load()方法的主要功能是自动加载类库。

自动加载的工作原理:

当我们新建一个类时,如果它不存在,就会触发spl_autoload_register注册的方法,然后通过这个方法引入要实例化的类

spl _ auto load _ register(' core imooc : load ');我们在条目文件index.php中注册:

?Php/*条目文件1。定义常数2。加载函数库3。启动框架*///定义当前框架所在的根目录(' imooc ',_ _ dir _ _);//定义框架核心文件所在的目录定义(' core ',IMOOC。/core ');//项目文件所在的目录定义了(' app ',imooc。/app ');//定义项目调试模式define('DEBUG ',true);//如果(debug) {//设置错误级别:显示所有错误ini_set('display_error ',' On '),则判断项目是否处于DEBUG状态;}else{ ini_set('display_error ',' Off ');}//加载函数库includecore。/common/function . PHP ';//加载框架核心文件include CORE。/imooc . PHP ';//注册自动加载//( core IMO co :3360 load将在我们新建一个不存在的类时触发)spl _ autoload _ register( core IMO co :3360 load '); core imooc :3360 run();因此,当run方法实例化route类时,我们没有手动引入这个类文件

静态公共函数run(){ p(' ok ');$ route=new core route();}上述代码中,new coreroute()将触发load()方法,然后导入所需文件。

Route.php法典如下:

?phpnamespace核心;Route类{ public function _ _ construct(){ p(' Route ok ');}}现在当我们访问门户文件index.php时,我们将调用Imooc:run方法,并期望浏览器输出:

okroute ok

此时,项目结构如下:

更多对PHP相关内容感兴趣的读者可以查看本网站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》、《php常见数据库操作技巧汇总》、0103010

希望本文对PHP编程有所帮助。

更多资讯
游戏推荐
更多+