/**
* 自加载函数
*
* @param string $class 类名
*
* @return void
*/
private static function autoload($class)
{
$classOrigin = $class;
//new Framework\Exceptions\CoreHttpException;
// root/www/blog/framework/exceptions/CoreHttpException.php
$classInfo = explode('\\', $class); //把命名空间拆分成数组
$className = array_pop($classInfo); //删除最后一个元素
foreach ($classInfo as &$v) {
$v = strtolower($v);
}
unset($v);
array_push($classInfo, $className);
//主要作用是把文件名的目录部分转化成小写
$class = implode('\\', $classInfo);
$path = self::$namespaceMap['Framework'];
$classPath = $path . '/'.str_replace('\\', '/', $class) . '.php';
if (!file_exists($classPath)) {
// 框架级别加载文件不存在 composer加载
return;
throw new CoreHttpException(404, "$classPath Not Found");
}
self::$map[$classOrigin] = $classPath;
require $classPath;
}
转载于:https://my.oschina.net/yonghan/blog/1560258