微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

自动加载类

思考:

  有哪些类文件需要加载?

回答:

  一共有三种:

    1.核心框架类(已经确定好了);

    2.控制器类(可以增加)‘

    3.模型类(可以增加)

对于所有的类,可以分成两个方面来考虑

  1.对于已经确定好了的类,最好采用最简洁的方式进行直接加载

  2.对于不确定的可以增加类,需要通过类名的规律,完成其位置的判断,然后再进行自动的加载

  

 

  基本规律是:

  对于Controller结尾的类,说明是控制器类,应该在当前对应的平台下的Controller目录进行加载

  对于Model结尾的类,说明是模型类,应该在当前对应的平台下的Mdel目录进行加载

 

在index.PHP 入口文件中定义自加载方法

    function autoload($class_name){
        //先把已经确定的核心类放到一个数组中
        $frame_class=array(
            "Controller"=>"./framework/Controller.class.PHP",
            "Factory"=>"./framework/Factory.class.PHP",
            "Model"=>"./framework/Model.class.PHP",
            "MyPDO"=>"./framework/MyPDO.class.PHP",
        );
        //判断是否是核心类,
        if(isset($frame_class[$class_name])){
            //说明是核心类
            include $frame_class[$class_name];
            //如果不是核心类,我们截取后10个字符等于Controller说明是控制器类
        }elseif (substr($class_name,-10)=="Controller"){
            //在当前平台的Controller目录下进行加载
            include './application/'.PLATFORM.'/Controller/'.$class_name.'.class.PHP';
        }elseif(substr($class_name,-5)=="Model"){        //如果截取后5个字符==Model 说明是Model模型类
            //在当前平台下的Model目录下进行加载
            include './application/'.PLATFORM.'/Model/'.$class_name.'.class.PHP';
        }
    }

    //执行自动加载类
    spl_autoload_register('autoload');

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐