思考:
有哪些类文件需要加载?
回答:
一共有三种:
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');