创建完入口文件之后,我们要建一个自动加载类
首先index.php后加一个函数:spl_autoload_register();
<?php /** * 入口文件 * 1、定义常量 * 2、加载函数库 * 3、启动框架 */ define('PATH',getcwd());//获取当前框架所在的目录 define('CORE',PATH.'/core');//框架核心文件所在的目录 define('APP',PATH.'/app');//项目文件目录:控制器、模型等等 define('DEBUG',true);//是否开启调试模式 if(DEBUG) { ini_set('display_error','On'); }else{ ini_set('display_error','Off'); } include CORE.'/common/function.php';//加载函数库 include CORE.'/core.php';//加载核心文件 spl_autoload_register('core::load');//当我们new的类不存在的时候它会出发这个load方法然后我们在core.php中加入一个load方法
<?php namespace core; class core { //防止重复引用类 public static $classMap = array(); static public function run() { //p('ok'); new route(); } //自动加载类库 static public function load($class) { //echo 123; //判断$classMap中是否有这个类 if(isset($classMap[$class])){ return true; } else { $class = str_replace('\\','/',$class); $file = PATH.'/'.$class.'.php'; //判断这个文件是否存在 if(is_file($file)) { include $file; //如果引入成功的话,就放到$classMap数组中 self::$classMap[$class] = $class; } else { return false; } } } }
然后我们在core中建一个route.php用来在core中实例化
<?php namespace core; class route { public function __construct() { p('route ok'); } }这样我们的类自动加载就做完了