原文地址 http://blog.csdn.net/luguo0816/article/details/6975144
保留学习:
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('<br>'.$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);
- }