В YiiBase
классе, в конце файла вы можете увидеть:
spl_autoload_register(array('YiiBase','autoload'));
Это будет «связывать» магический метод с методом 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]);
...
И эта переменная содержит все основные YII классов:
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',
...
);