thinkphp——关于import中@表示的路径

thinkphp 

import  默认路径是系统的库目录thinkphp/lib,@表示项目库目录app/lib

convention.php

'DEFAULT_APP'           => '@',     // 默认项目名称,@表示当前项目


functions.php

function import($class, $baseUrl = '', $ext='.class.php') {
    static $_file = array();
    static $_class = array();
    $class = str_replace(array('.', '#'), array('/', '.'), $class);  //用“/”替换“.”,用“.”替换“#”
    if ('' === $baseUrl && false === strpos($class, '/')) {
        // 检查别名导入
        return alias_import($class);
    }    //echo('
'.$class.$baseUrl); if (isset($_file[$class . $baseUrl])) return true; else $_file[$class . $baseUrl] = true; $class_strut = explode("/", $class); if (empty($baseUrl)) { if ('@' == $class_strut[0] || APP_NAME == $class_strut[0]) { //加载当前项目应用类库 $baseUrl = dirname(LIB_PATH); //LIB_PATH当前项目类库,如果当前项目名为App则LIB_PATH为“./App/Lib” $class = substr_replace($class, 'Lib/', 0, strlen($class_strut[0]) + 1); } elseif (in_array(strtolower($class_strut[0]), array('think', 'org', 'com'))) { //加载ThinkPHP基类库或者公共类库 // think 官方基类库 org 第三方公共类库 com 企业公共类库 $baseUrl = THINK_PATH . '/Lib/'; } else { // 加载其他项目应用类库 $class = substr_replace($class, '', 0, strlen($class_strut[0]) + 1); $baseUrl = APP_PATH . '/../' . $class_strut[0] . '/' . LIB_DIR . '/'; } } if (substr($baseUrl, -1) != "/") $baseUrl .= "/"; $classfile = $baseUrl . $class . $ext; if ($ext == '.class.php' && is_file($classfile)) { // 冲突检测 $class = basename($classfile, $ext); if (isset($_class[$class])) throw_exception(L('_CLASS_CONFLICT_') . ':' . $_class[$class] . ' ' . $classfile); $_class[$class] = $classfile; } //导入目录下的指定类库文件 return require_cache($classfile); }


你可能感兴趣的:(thinkphp)