YiiBase类如何包含函数中所需的文件" createApplication" ??
public static function createApplication($class,$config=null)
{
return new $class($config);
}
我无法找到YiiBase包含的方式" CWebApplication.php"在创建Yii应用程序时
答案 0 :(得分:2)
在YiiBase
课程中,您可以在文件末尾看到:
spl_autoload_register(array('YiiBase','autoload'));
这将"绑定" __autoload
autoload
方法的YiiBase
魔术方法YiiBase
。
http://php.net/manual/fr/function.autoload.php
在这个autoload
...
if(isset(self::$classMap[$className]))
include(self::$classMap[$className]);
elseif(isset(self::$_coreClasses[$className]))
include(YII_PATH.self::$_coreClasses[$className]);
...
方法中,我们可以看到它使用$ _coreClasses变量来尝试包含所询问的类。
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',
...
);
此变量包含所有核心yii类:
{{1}}