封装框架(四)自动加载类

创建完入口文件之后,我们要建一个自动加载类

首先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');
    }
}
这样我们的类自动加载就做完了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值