mvc自动加载类

接下来我们实现调用自动加载类

1.将自动加载方法放到基本类中 

2.将接过来的值中的反斜线改为正斜线用到的方法是: 因为输入一个反斜线是转义字符所以我们须要写俩个

3.在引入一个类的时候先要判断是否已经引用了这个类 如果引用了我们返回一个true 否则我们在执行自动加载的部分

4.如果加载成功的话我们可以将这个类放到classMap数组当中,因为是一个静态的属性我们要用到self来引入

5.测试我们的类是否能调用成功 如果报错 那我们可以看一下路径是否拼对了   

6.这样我们就可以new \core\lib\不存在的类();去触发spl_autoload_register();的方法当这个类不存在的时候我们可以让它去找自动加载的类,如果这个自动加载的类存在的话我们可以给他返回一个true 这样可以避免我们重复加载问题 否则将类转化一下  在include进来 这样自动加载类就完成了

  

<?php
namespace core;
class mvc
{
	public static $classMap =array();
	static public function run()
	{
		//p('ok');
		$route = new \core\lib\route();
	}
	static public function load($class)
	{
		//自动加载类库
		//new\core\route();
		//$class = '\core\route';
		//MVC.'/core/route.php';
		// p($class);
		// p(MVC . $class . '.php');
		if(isset($classMap[$class])){
			return true;
		}
		else
		{
		$class = str_replace('\\', '/', $class);
		$file = MVC . '/' . $class . ".php";
			if(is_file($file))
			{
				include $file;
			}
			else
			{
				return false;
			}
		}
    }
}



相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页