在YiiBase
类时,在文件的最后,你可以看到:
spl_autoload_register(array('YiiBase','autoload'));
这将“绑定”魔术方法方法YiiBase
。 http://php.net/manual/fr/function.autoload.php
在这种YiiBase
autoload
方法,我们可以看到它使用_coreClasses $变量来尝试包括被问的类。
...
if(isset(self::$classMap[$className]))
include(self::$classMap[$className]);
elseif(isset(self::$_coreClasses[$className]))
include(YII_PATH.self::$_coreClasses[$className]);
...
而且这个变量包含所有的核心警予类:
private static $_coreClasses=array(
'CApplication' => '/base/CApplication.php',
'CApplicationComponent' => '/base/CApplicationComponent.php',
'CBehavior' => '/base/CBehavior.php',
'CComponent' => '/base/CComponent.php',
'CErrorEvent' => '/base/CErrorEvent.php',
'CErrorHandler' => '/base/CErrorHandler.php',
...
);