YiiBase类如何包含文件

时间:2014-09-26 09:11:19

标签: php yii

YiiBase类如何包含函数中所需的文件" createApplication" ??

 public static function createApplication($class,$config=null)
    {
            return new $class($config);
    }

我无法找到YiiBase包含的方式" CWebApplication.php"在创建Yii应用程序时

1 个答案:

答案 0 :(得分:2)

YiiBase课程中,您可以在文件末尾看到:

spl_autoload_register(array('YiiBase','autoload'));

这将"绑定" __autoload autoload方法的YiiBase魔术方法YiiBasehttp://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}}
相关问题