学习php自行开发MVC框架过程(三)
2016-12-24 16:23
211 查看
学习php自行开发MVC框架过程(三)
三、自动加载类库
1、我们首先打开core目录并创建一个route.php的文件
2、我们再打开core目录下的xia.php,再建一个方法load:
3、再打开入口文件在下面加一条
sql_autoload_register('\core\xia::load');//目的是当我们new一个类的时候如果这个类不存在的话他就会触发一个方法指定到xia下的load方法中去,通过这个方法我们把不存在的类引入一下
最后我们进行测试在run方法中加
$route = new \core\route();
然后在route.php中这样写
可以看到route ok
这样我们就可以通过new一个不存在的类去触发sql_autoload_register这个方法,去找对应的自动加载的类,在自动加载的类当中如果已加载的话就会返回一个true避免重复加载的情况,如果没有就把我们对应的这个类转化一下,最后include进来,这样我们的一个自动加载类就完成啦
三、自动加载类库
1、我们首先打开core目录并创建一个route.php的文件
2、我们再打开core目录下的xia.php,再建一个方法load:
3、再打开入口文件在下面加一条
sql_autoload_register('\core\xia::load');//目的是当我们new一个类的时候如果这个类不存在的话他就会触发一个方法指定到xia下的load方法中去,通过这个方法我们把不存在的类引入一下
public static $classMap = array();//建一个静态属性,防止重复引入 static public function load($class){ //自动加载类库 //new \core\route(); //$class = '\core\route'; //IMOOC.'/core/route.php';相当于我们把$class的这个字符串转化为本行的字符串 //然后就要把'\'转化为'/'; if(isset($classMap[$class])){//如果这个类存在就直接返回true; return true; }else{ //如果该类不存在就判断该文件是否存在 $class = str_replace('\\','/',$class); $file = IMOOC.'/'.$class.'php'; if(is_file($file)){ include $file; self::$classMap[$class] = $class; }else{ return false; } }
最后我们进行测试在run方法中加
$route = new \core\route();
然后在route.php中这样写
<?php namespace core; class route { public function __construct() { return p('route ok'); } }
可以看到route ok
这样我们就可以通过new一个不存在的类去触发sql_autoload_register这个方法,去找对应的自动加载的类,在自动加载的类当中如果已加载的话就会返回一个true避免重复加载的情况,如果没有就把我们对应的这个类转化一下,最后include进来,这样我们的一个自动加载类就完成啦
相关文章推荐
- 学习php自行开发mvc框架过程(二)
- 学习php自行开发MVC框架过程(五)
- 学习php自行开发mvc框架过程(一)
- 学习php自行开发MVC框架过程(四)
- 学习php自行开发mvc框架过程(七)
- 学习php自行开发MVC框架过程(六)
- 学习php自行开发mvc框架过程(八)
- 用C++ 进行 ArcGis 开发的入门学习过程
- Moblin MID开发学习笔记 - application launcher安装过程
- 初学者学习PHP开发应该掌握的几段精华代码
- 一步一步学习PHP(1) php开发环境配置
- PHP面向对象开发的学习(二)(PHP100第十九讲)
- PHP面向对象开发的学习(三)(PHP100第二十讲)
- 初学者学习PHP开发应该掌握的几段精华代码
- PHP开发环境配置过程详解
- PHP开发学习要点+12种开发工具
- Silverlight MVC框架学习:基于Cairngorm的Silverlight开发
- 本人在学习PHP过程中的随笔心得
- 面向对象开发学习(五)(PHP第二十一讲)
- 统一软件开发过程学习笔记