mvc类自动加载的编写(二)

来源:互联网 发布:捷孚凯市场咨询知乎 编辑:程序博客网 时间:2024/06/14 03:48

一、自动加载类

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

2)模拟工作原理如何调用类 调用类须要有三个步骤 首先我们要用到一个方法 方法名为

    /*当类不存在触发这个方法*/      spl_autoload_register('类的路径');(须要引入命名空间)  

3)将接过来的值中的反斜线改为正斜线用到的方法是:

    $class=str_replace('\\','/', 接过来的值);(因为输入一个反斜线是转义字符所以我们须要写俩个)  

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

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

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

p(类名);   

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

    static public function load($class){        //自动加载类        //new core\route();        //$class = '\core\route';        //MVC.'/core/route.php';        $class = str_replace('\\', '/', $class);        $file = MVC.'/'.$class.'.php';        if (isset($classMap[$class])) {            return true;                    } else {            if(is_file($file)){                include $file;                self::$classMap[$class] = $class;            } else {                return false;            }        }    }
0 0
原创粉丝点击