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');
  • 相关阅读:
    (一二二)核心动画进阶
    1089. Insert or Merge (25)
    (一二一)核心动画基础
    (一二〇)CALayer的一些特性
    (一一九)通过CALayer实现阴影、圆角、边框和3D变换
    1086. Tree Traversals Again (25)
    POJ 2610:Dog & Gopher
    模拟内存分配(链表实现)
    圣诞树后能找到我的记忆
    YTU 2797: 复仇者联盟之关灯
  • 原文地址:https://www.cnblogs.com/xiaowie/p/14329812.html
Copyright © 2011-2022 走看看