zoukankan      html  css  js  c++  java
  • 自动加载类

    思考:

      有哪些类文件需要加载?

    回答:

      一共有三种:

        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');
  • 相关阅读:
    管理~资源组织运作
    科学与艺术区别
    概念思维
    拨开文字表象,关注背后事实
    论信息部门与业务部门的关系
    再论信息系统
    linux命令行快捷键记录
    hadoop,帮我解了部分惑的文章
    hadoop运行测试命令遇到的问题
    日志分析及几个小技巧
  • 原文地址:https://www.cnblogs.com/xiaowie/p/14329812.html
Copyright © 2011-2022 走看看