autoload_real.php
代码分析
autoload_real.php 中的代码
public static function getLoader()
{
$loader->register(true);// 调用文件 ClassLoader.php 的register 方法
}
ClassLoader.php
public function register($prepend = false)
{
// 当实例化一个类的时候,调用 this 类中的 loadClass 方法
spl_autoload_register(array($this,'loadClass'),true,$perpend);
}
// 重点重点
public function loadClass($class)
{
// 调用 findFile
if($file = $this-findFile($class)) {
includeFile($file);
return true;
}
}
public function findFile($class)
{
// 做了几件事
// 1: 先在 classMap属性中找
// 2: 在 psr4规范中找
// 3: 在 psr0规范中找
如果找返回 file文件名
否则返回 false
}
// 类最后找不到 抛出异常