Loader类的自动加载方法 Win环境下面严格区分大小写

This commit is contained in:
thinkphp
2013-04-10 22:19:19 +08:00
parent 29a97c50e3
commit 1a2a58a8ad
4 changed files with 12 additions and 8 deletions

View File

@@ -178,7 +178,7 @@ class App {
}
// 获取模块名称
define('MODULE_NAME',strtolower(isset($_GET[$var_m])?$_GET[$var_m]:$config['default_module']));
define('MODULE_NAME',ucwords(strtolower(isset($_GET[$var_m])?$_GET[$var_m]:$config['default_module'])));
// 模块初始化
if(MODULE_NAME && is_dir(APP_PATH.MODULE_NAME)) {

View File

@@ -35,8 +35,12 @@ class Loader {
}
}
$path = $find?dirname($path).'/':APP_PATH;
$filename = $path.str_replace('\\','/',$class).'.php';
$filename = $path.str_replace('\\','/',$class).EXT;
if(is_file($filename)) {
// Win环境下面严格区分大小写
if (IS_WIN && !strstr(str_replace('/','\\',realpath($filename)),$class.EXT,true)){
return ;
}
include $filename;
}
}
@@ -71,7 +75,7 @@ class Loader {
*/
static public function import($class, $baseUrl = '', $ext= EXT ) {
static $_file = [];
$class = str_replace(array('.', '#'), array('/', '.'), $class);
$class = str_replace(['.', '#'], ['/', '.'], $class);
if (isset($_file[$class . $baseUrl]))
return true;
else
@@ -82,11 +86,11 @@ class Loader {
//加载当前项目应用类库
$class = substr_replace($class, '', 0, strlen($class_strut[0]) + 1);
$baseUrl = MODULE_PATH;
}elseif (in_array(strtolower($class_strut[0]), array('org','com'))) {
}elseif (in_array($class_strut[0], ['Org','Com'])) {
// org 第三方公共类库 com 企业公共类库
$baseUrl = LIB_PATH;
}elseif('vendor' == strtolower($class_strut[0])){
$baseUrl = VENDOR_PATH;
}elseif(in_array($class_strut[0], ['Think','Vendor','Traits'])){
$baseUrl = THINK_PATH;
}else { // 加载其他项目应用类库
$class = substr_replace($class, '', 0, strlen($class_strut[0]) + 1);
$baseUrl = APP_PATH . $class_strut[0] .'/';

View File

@@ -426,7 +426,7 @@ class Template {
protected function parseTagLib($tagLib,&$content,$hide=false) {
$begin = $this->config['taglib_begin'];
$end = $this->config['taglib_end'];
$className = '\\Think\\Template\\Taglib\\'.ucwords($tagLib);
$className = '\\Think\\Template\\TagLib\\'.ucwords($tagLib);
$tLib = new $className;
foreach ($tLib->getTags() as $name=>$val){
$tags = [$name];

View File

@@ -9,7 +9,7 @@
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
namespace Think\Template\Taglib;
namespace Think\Template\TagLib;
use Think\Template\TagLib;
/**
* CX标签库解析类