YII2源码阅读:autoload_real.php 22~23行

spl_autoload_register(array('ComposerAutoloaderInit32b8eb537f8e12e57c5e7bade69d01f0', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();

疑问:不是说php的命名空间是跟文件夹一一对应的吗?可是Composer文件夹里面并没有Autoload文件夹,怎么也能实例化呢?

答:如果不了解autoload,那么就会有这个疑问。实例化不存在的类 new \Composer\Autoload\ClassLoader(); 之前,已经注册了自动加载函数,如果实例化的时候没有这个类,那么会把类作为参数(\Composer\Autoload\ClassLoader),传给自动加载函数处理

  

posted @ 2016-03-01 13:53  捕蛇者说  阅读(339)  评论(0编辑  收藏  举报