Thinkphp新增自动加载文件

可以自定义类名后缀,通过这种方式自动加载文件。

sign/ThinkPHP/Lib/Core/Think.class.php


public static function autoload($class) {
    // 检查是否存在别名定义
    if(alias_import($class)) return ;
    $libPath    =   defined('BASE_LIB_PATH')?BASE_LIB_PATH:LIB_PATH;
    $group      =   defined('GROUP_NAME') && C('APP_GROUP_MODE')==0 ?GROUP_NAME.'/':'';
    $file       =   $class.'.class.php';
    if(substr($class,-8)=='Behavior') { // 加载行为
        if(require_array(array(
            CORE_PATH.'Behavior/'.$file,
            EXTEND_PATH.'Behavior/'.$file,
            LIB_PATH.'Behavior/'.$file,
            $libPath.'Behavior/'.$file),true)
            || (defined('MODE_NAME') && require_cache(MODE_PATH.ucwords(MODE_NAME).'/Behavior/'.$file))) {
            return ;
        }
    }elseif(substr($class,-5)=='Model'){ // 加载模型
        if(require_array(array(
            LIB_PATH.'Model/'.$group.$file,
            $libPath.'Model/'.$file,
            EXTEND_PATH.'Model/'.$file),true)) {
            return ;
        }
    }elseif(substr($class,-6)=='Action'){ // 加载控制器
        if(require_array(array(
            LIB_PATH.'Action/'.$group.$file,
            $libPath.'Action/'.$file,
            EXTEND_PATH.'Action/'.$file),true)) {
            return ;
        }
    }elseif(substr($class,0,5)=='Cache'){ // 加载缓存驱动
        if(require_array(array(
            EXTEND_PATH.'Driver/Cache/'.$file,
            CORE_PATH.'Driver/Cache/'.$file),true)){
            return ;
        }
    }elseif(substr($class,0,2)=='Db'){ // 加载数据库驱动
        if(require_array(array(
            EXTEND_PATH.'Driver/Db/'.$file,
            CORE_PATH.'Driver/Db/'.$file),true)){
            return ;
        }
    }elseif(substr($class,0,8)=='Template'){ // 加载模板引擎驱动
        if(require_array(array(
            EXTEND_PATH.'Driver/Template/'.$file,
            CORE_PATH.'Driver/Template/'.$file),true)){
            return ;
        }
    }elseif(substr($class,0,6)=='TagLib'){ // 加载标签库驱动
        if(require_array(array(
            EXTEND_PATH.'Driver/TagLib/'.$file,
            CORE_PATH.'Driver/TagLib/'.$file),true)) {
            return ;
        }
        // 新增类载入
    } elseif (substr($class, -4)=='Base'){
        if(require_array(array(
            LIB_PATH.'你的文件夹/'.$file,
            $libPath.'你的文件夹/'.$file), true)) {
            return ;
        }
    }

    // 根据自动加载路径设置进行尝试搜索
    $paths  =   explode(',',C('APP_AUTOLOAD_PATH'));
    foreach ($paths as $path){
        if(import($path.'.'.$class))
            // 如果加载类成功则返回
            return ;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值