2014-09-26 50 views
1

YiiBase類如何包含函數「createApplication」中所需的文件?YiiBase類如何包含文件

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

我找不到路YiiBase包括「CWebApplication.php」創建Yii應用

回答

2

YiiBase類時,在文件的最後,你可以看到:

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

這將「綁定」魔術方法方法YiiBasehttp://php.net/manual/fr/function.autoload.php

在這種YiiBaseautoload方法,我們可以看到它使用_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', 
    ... 
);