Yii Framework v1.1.10 绫诲弬鑰

YiiBase

system
缁ф壙 class YiiBase
瀛愮被 Yii
婧愯嚜 1.0
鐗堟湰 $Id: YiiBase.php 3564 2012-02-13 01:29:03Z qiang.xue $
婧愮爜 framework/YiiBase.php
YiiBase鏄竴涓姪鎵嬬被锛屽畠鏈嶅姟浜庢暣涓鏋躲

涓嶈鐩存帴浣跨敤YiiBase銆傜浉鍙嶏紝浣犲簲璇ヤ娇鐢ㄥ畠鐨勫瓙绫Yii锛 浣犲彲浠ュ湪Yii涓畾鍒禮iiBase鐨勬柟娉曘

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
classMap array 鐢ㄤ簬Yii鐨勮嚜鍔ㄥ姞杞界被鍦板浘. YiiBase
enableIncludePath boolean 鏄惁瑕佷緷闈燩HP鍖呭惈璺緞鍒拌嚜鍔ㄥ姞杞界被鏂囦欢銆傞粯璁や负true銆 濡傛灉浣犵殑瀹夸富鐜涓嶅厑璁镐綘鏀瑰彉PHP鍖呭惈璺緞锛屽彲浠ヨ缃负false銆 鎴栬呬綘鎯虫坊鍔犲彟澶栫殑鑷姩鍔犺浇鍣ㄥ埌榛樿鐨刌ii鑷姩鍔犺浇鍣ㄣ YiiBase

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
app() 杩斿洖搴旂敤绋嬪簭鍗曚緥锛屽鏋滃崟渚嬭繕娌″垱寤轰负null銆 YiiBase
autoload() 绫昏嚜鍔ㄥ姞杞藉櫒銆 YiiBase
beginProfile() 鏍囪鍒嗘瀽涓鍧椾唬鐮佺殑寮濮嬩綅缃 YiiBase
createApplication() 鍒涘缓涓涓寚瀹氱被鐨勫簲鐢ㄧ▼搴忋 YiiBase
createComponent() 鍒涘缓涓涓璞″苟鏍规嵁鎸囧畾鐨勯厤缃垵濮嬪寲銆 YiiBase
createConsoleApplication() 鍒涘缓涓涓帶鍒跺彴搴旂敤绋嬪簭瀹炰緥銆 YiiBase
createWebApplication() 鍒涘缓涓涓猈eb搴旂敤绋嬪簭瀹炰緥銆 YiiBase
endProfile() 鏍囪鍒嗘瀽涓鍧椾唬鐮佺殑缁撴潫浣嶇疆銆 YiiBase
getFrameworkPath() 杩斿洖妗嗘灦鐨勮矾寰 YiiBase
getLogger() 杩斿洖鏃ュ織淇℃伅鍣 YiiBase
getPathOfAlias() 缈昏瘧涓涓埆鍚嶄负涓涓枃浠惰矾寰勩 YiiBase
getVersion() 杩斿洖杩斿洖Yii framework鐗堟湰鍙 YiiBase
import() 瀵煎叆涓涓被鎴栦竴涓洰褰曘 YiiBase
log() 鍐欏叆涓鏉℃棩蹇椾俊鎭 YiiBase
powered() 杩斿洖涓涓彲浠ュ湪缃戦〉涓樉绀虹殑Powered-by-Yii瀛楃涓蹭俊鎭 YiiBase
registerAutoloader() 娉ㄥ唽涓涓柊鐨勭被鑷姩鍔犺浇鍣ㄣ YiiBase
setApplication() 鍦ㄧ被闈欐佹垚鍛樹腑瀛樺偍搴旂敤绋嬪簭瀹炰緥銆 YiiBase
setLogger() 璁剧疆鏃ュ織璁板綍鍣ㄥ璞° YiiBase
setPathOfAlias() 鍒涘缓涓涓矾寰勫埆鍚嶃 YiiBase
t() 缈昏瘧涓鏉′负鎸囧畾璇█鐨勪俊鎭 YiiBase
trace() 鍐欏叆涓鏉¤窡韪俊鎭 YiiBase

灞炴ц缁

classMap 灞炴 锛堝彲鐢ㄨ嚜 v1.1.5锛
public static array $classMap;

鐢ㄤ簬Yii鐨勮嚜鍔ㄥ姞杞界被鍦板浘. 鏁扮粍涓殑閿槸绫诲悕锛屾暟缁勪腑鐨勫兼槸鐩稿簲绫绘枃浠剁殑璺緞銆

enableIncludePath 灞炴 锛堝彲鐢ㄨ嚜 v1.1.8锛
public static boolean $enableIncludePath;

鏄惁瑕佷緷闈燩HP鍖呭惈璺緞鍒拌嚜鍔ㄥ姞杞界被鏂囦欢銆傞粯璁や负true銆 濡傛灉浣犵殑瀹夸富鐜涓嶅厑璁镐綘鏀瑰彉PHP鍖呭惈璺緞锛屽彲浠ヨ缃负false銆 鎴栬呬綘鎯虫坊鍔犲彟澶栫殑鑷姩鍔犺浇鍣ㄥ埌榛樿鐨刌ii鑷姩鍔犺浇鍣ㄣ

鏂规硶璇︾粏

app() 鏂规硶
public static CApplication app()
{return} CApplication 搴旂敤绋嬪簭鍗曚緥銆傚鏋滃崟渚嬭繕娌″垱寤轰负null銆
婧愮爜锛 framework/YiiBase.php#134 (鏄剧ず)
public static function app()
{
    return 
self::$_app;
}

杩斿洖搴旂敤绋嬪簭鍗曚緥锛屽鏋滃崟渚嬭繕娌″垱寤轰负null銆

autoload() 鏂规硶
public static boolean autoload(string $className)
$className string 绫诲悕
{return} boolean 鏄惁璇ョ被宸茬粡琚垚鍔熻浇鍏
婧愮爜锛 framework/YiiBase.php#393 (鏄剧ず)
public static function autoload($className)
{
    
// use include so that the error PHP file may appear
    
if(isset(self::$classMap[$className]))
        include(
self::$classMap[$className]);
    else if(isset(
self::$_coreClasses[$className]))
        include(
YII_PATH.self::$_coreClasses[$className]);
    else
    {
        
// include class file relying on include_path
        
if(strpos($className,'\\')===false)  // class without namespace
        
{
            if(
self::$enableIncludePath===false)
            {
                foreach(
self::$_includePaths as $path)
                {
                    
$classFile=$path.DIRECTORY_SEPARATOR.$className.'.php';
                    if(
is_file($classFile))
                    {
                        include(
$classFile);
                        break;
                    }
                }
            }
            else
                include(
$className.'.php');
        }
        else  
// class name with namespace in PHP 5.3
        
{
            
$namespace=str_replace('\\','.',ltrim($className,'\\'));
            if((
$path=self::getPathOfAlias($namespace))!==false)
                include(
$path.'.php');
            else
                return 
false;
        }
        return 
class_exists($className,false) || interface_exists($className,false);
    }
    return 
true;
}

绫昏嚜鍔ㄥ姞杞藉櫒銆 杩欎釜鏂规硶鏄彁渚涚粰__autoload()榄旀湳鏂规硶浣跨敤銆

beginProfile() 鏂规硶
public static void beginProfile(string $token, string $category='application')
$token string 浠g爜鍧楁爣璁
$category string 鏃ュ織淇℃伅绫诲埆
婧愮爜锛 framework/YiiBase.php#497 (鏄剧ず)
public static function beginProfile($token,$category='application')
{
    
self::log('begin:'.$token,CLogger::LEVEL_PROFILE,$category);
}

鏍囪鍒嗘瀽涓鍧椾唬鐮佺殑寮濮嬩綅缃 鏍囪寮濮嬪垎鏋愪竴鍧椾唬鐮併傚畠蹇呴』鏈変竴涓悓鏍风殑endProfile()鍖归厤銆 begin-鍜宔nd-璋冪敤蹇呴』鏄纭殑宓屽锛屼緥濡傦紝

Yii::beginProfile('block1');
Yii::beginProfile('block2');
Yii::endProfile('block2');
Yii::endProfile('block1');
涓嬮潰鐨勮鍙ユ槸鏃犳晥鐨勶細
Yii::beginProfile('block1');
Yii::beginProfile('block2');
Yii::endProfile('block1');
Yii::endProfile('block2');

鍙傝

createApplication() 鏂规硶
public static mixed createApplication(string $class, mixed $config=NULL)
$class string 搴旂敤绋嬪簭绫诲悕
$config mixed 搴旂敤绋嬪簭閰嶇疆銆 杩欎釜鍙傛暟灏嗕細浼犻掔粰搴旂敤绋嬪簭绫荤殑鏋勯犲嚱鏁般
{return} mixed 杩欎釜搴旂敤绋嬪簭瀹炰緥
婧愮爜锛 framework/YiiBase.php#125 (鏄剧ず)
public static function createApplication($class,$config=null)
{
    return new 
$class($config);
}

鍒涘缓涓涓寚瀹氱被鐨勫簲鐢ㄧ▼搴忋

createComponent() 鏂规硶
public static mixed createComponent(mixed $config)
$config mixed 閰嶇疆锛屽畠鍙兘鏄竴涓瓧绗︿覆鎴栨暟缁勩
{return} mixed 鍒涘缓鍚庣殑瀵硅薄
婧愮爜锛 framework/YiiBase.php#182 (鏄剧ず)
public static function createComponent($config)
{
    if(
is_string($config))
    {
        
$type=$config;
        
$config=array();
    }
    else if(isset(
$config['class']))
    {
        
$type=$config['class'];
        unset(
$config['class']);
    }
    else
        throw new 
CException(Yii::t('yii','Object configuration must be an array containing a "class" element.'));

    if(!
class_exists($type,false))
        
$type=Yii::import($type,true);

    if((
$n=func_num_args())>1)
    {
        
$args=func_get_args();
        if(
$n===2)
            
$object=new $type($args[1]);
        else if(
$n===3)
            
$object=new $type($args[1],$args[2]);
        else if(
$n===4)
            
$object=new $type($args[1],$args[2],$args[3]);
        else
        {
            unset(
$args[0]);
            
$class=new ReflectionClass($type);
            
// Note: ReflectionClass::newInstanceArgs() is available for PHP 5.1.3+
            // $object=$class->newInstanceArgs($args);
            
$object=call_user_func_array(array($class,'newInstance'),$args);
        }
    }
    else
        
$object=new $type;

    foreach(
$config as $key=>$value)
        
$object->$key=$value;

    return 
$object;
}

鍒涘缓涓涓璞″苟鏍规嵁鎸囧畾鐨勯厤缃垵濮嬪寲銆

鎸囧畾鐨勯厤缃彲浠ユ槸涓涓瓧绗︿覆鎴栦竴涓暟缁勩 濡傛灉鏄墠鑰咃紝璇ュ瓧绗︿覆琚綋浣滐紙鎸囧畾涓涓被鍚嶇殑锛夊璞$被鍨嬶紝鎴 绫荤殑璺緞鍒悕銆 濡傛灉鏄悗鑰咃紝鈥榗lass鈥欏厓绱犲褰撲綔瀵硅薄绫诲瀷瀵瑰緟锛 骞朵笖鏁扮粍涓叾浣欑殑閿煎琚敤浣滃垵濮嬪寲 鐩稿簲鐨勫璞″睘鎬с

浼犻掔粰杩欎釜鏂规硶鐨勪换浣曢澶栫殑鍙傛暟 灏嗕紶閫掔粰灏嗚鍒涘缓鐨勫璞$殑鏋勯犳柟娉曘

createConsoleApplication() 鏂规硶
public static CConsoleApplication createConsoleApplication(mixed $config=NULL)
$config mixed 搴旂敤绋嬪簭閰嶇疆銆 濡傛灉鏄竴涓瓧绗︿覆锛屽畠灏嗚褰撲綔鏂囦欢鐨勮矾寰勶紝鍏朵腑鍖呭惈閰嶇疆锛 濡傛灉鏄竴涓暟缁勶紝瀹冨皢琚綋浣滃叿浣撶殑閰嶇疆淇℃伅銆 璇峰姟蹇呭湪閰嶇疆鏂囦欢涓寚瀹basePath灞炴э紝 閫氬父搴旇鎸囧悜鐩綍鍖呭惈鎵鏈夌殑搴旂敤绋嬪簭閫昏緫锛屾ā鏉垮拰鏁版嵁銆 濡傛灉娌℃湁锛岄偅涔堥粯璁ゅ皢鎸囧畾涓衡榩rotected鈥欑洰褰曘
{return} CConsoleApplication
婧愮爜锛 framework/YiiBase.php#113 (鏄剧ず)
public static function createConsoleApplication($config=null)
{
    return 
self::createApplication('CConsoleApplication',$config);
}

鍒涘缓涓涓帶鍒跺彴搴旂敤绋嬪簭瀹炰緥銆

createWebApplication() 鏂规硶
public static CWebApplication createWebApplication(mixed $config=NULL)
$config mixed 搴旂敤绋嬪簭閰嶇疆銆 濡傛灉鏄竴涓瓧绗︿覆锛屽畠灏嗚褰撲綔鏂囦欢鐨勮矾寰勶紝鍏朵腑鍚湁閰嶇疆锛 濡傛灉鏄竴涓暟缁勶紝瀹冨皢琚綋浣滃叿浣撶殑閰嶇疆淇℃伅銆 璇峰姟蹇呭湪閰嶇疆鏂囦欢涓寚瀹basePath灞炴э紝 閫氬父搴旇鎸囧悜鐩綍鍖呭惈鎵鏈夌殑搴旂敤绋嬪簭閫昏緫銆佹ā鏉垮拰鏁版嵁銆 濡傛灉娌℃湁锛岄偅涔堥粯璁ゅ皢鎸囧畾涓衡榩rotected鈥欑洰褰曘
{return} CWebApplication
婧愮爜锛 framework/YiiBase.php#98 (鏄剧ず)
public static function createWebApplication($config=null)
{
    return 
self::createApplication('CWebApplication',$config);
}

鍒涘缓涓涓猈eb搴旂敤绋嬪簭瀹炰緥銆

endProfile() 鏂规硶
public static void endProfile(string $token, string $category='application')
$token string 浠g爜鍧楁爣璁
$category string 鏃ュ織淇℃伅绫诲埆
婧愮爜锛 framework/YiiBase.php#509 (鏄剧ず)
public static function endProfile($token,$category='application')
{
    
self::log('end:'.$token,CLogger::LEVEL_PROFILE,$category);
}

鏍囪鍒嗘瀽涓鍧椾唬鐮佺殑缁撴潫浣嶇疆銆 鏍囪鍒嗘瀽涓鍧椾唬鐮佺粨鏉熶綅缃傚畠蹇呴』鏈変竴涓悓鏍风殑beginProfile()鍖归厤銆

鍙傝

getFrameworkPath() 鏂规硶
public static string getFrameworkPath()
{return} string 妗嗘灦鐨勮矾寰
婧愮爜锛 framework/YiiBase.php#160 (鏄剧ず)
public static function getFrameworkPath()
{
    return 
YII_PATH;
}

getLogger() 鏂规硶
public static CLogger getLogger()
{return} CLogger 鏃ュ織淇℃伅鍣
婧愮爜锛 framework/YiiBase.php#517 (鏄剧ず)
public static function getLogger()
{
    if(
self::$_logger!==null)
        return 
self::$_logger;
    else
        return 
self::$_logger=new CLogger;
}

getPathOfAlias() 鏂规硶
public static mixed getPathOfAlias(string $alias)
$alias string 鍒悕锛堜緥濡傦細system.web.CController锛
{return} mixed 鍒悕瀵瑰簲鐨勬枃浠惰矾寰勶紝濡傛灉鍚嶇О鏃犳晥杩斿洖false銆
婧愮爜锛 framework/YiiBase.php#354 (鏄剧ず)
public static function getPathOfAlias($alias)
{
    if(isset(
self::$_aliases[$alias]))
        return 
self::$_aliases[$alias];
    else if((
$pos=strpos($alias,'.'))!==false)
    {
        
$rootAlias=substr($alias,0,$pos);
        if(isset(
self::$_aliases[$rootAlias]))
            return 
self::$_aliases[$alias]=rtrim(self::$_aliases[$rootAlias].DIRECTORY_SEPARATOR.str_replace('.',DIRECTORY_SEPARATOR,substr($alias,$pos+1)),'*'.DIRECTORY_SEPARATOR);
        else if(
self::$_app instanceof CWebApplication)
        {
            if(
self::$_app->findModule($rootAlias)!==null)
                return 
self::getPathOfAlias($alias);
        }
    }
    return 
false;
}

缈昏瘧涓涓埆鍚嶄负涓涓枃浠惰矾寰勩 娉ㄦ剰锛岃繖涓柟娉曚笉鑳戒繚璇佽繑鍥炵殑鏂囦欢璺緞瀛樺湪銆 瀹冧粎妫娴嬪埆鍚嶇殑鏍圭洰褰曟槸鍚︽湁鏁堛

getVersion() 鏂规硶
public static string getVersion()
{return} string 杩斿洖Yii framework鐗堟湰鍙
婧愮爜锛 framework/YiiBase.php#83 (鏄剧ず)
public static function getVersion()
{
    return 
'1.1.10';
}

import() 鏂规硶
public static string import(string $alias, boolean $forceInclude=false)
$alias string 瀵煎叆鐨勮矾寰勫埆鍚
$forceInclude boolean 鏄惁绔嬪嵆鍖呭惈绫绘枃浠躲 濡傛灉涓篺lase锛屽垯绫绘枃浠朵粎鍦ㄨ浣跨敤鏃跺寘鍚 杩欎釜鍙傛暟浠呭綋浣跨敤涓涓被鐨勮矾寰勫埆鍚嶆椂鎵嶄細鐢ㄥ埌銆
{return} string 鍒悕鎵鎸囩殑绫诲悕鎴栫洰褰
婧愮爜锛 framework/YiiBase.php#265 (鏄剧ず)
public static function import($alias,$forceInclude=false)
{
    if(isset(
self::$_imports[$alias]))  // previously imported
        
return self::$_imports[$alias];

    if(
class_exists($alias,false) || interface_exists($alias,false))
        return 
self::$_imports[$alias]=$alias;

    if((
$pos=strrpos($alias,'\\'))!==false// a class name in PHP 5.3 namespace format
    
{
        
$namespace=str_replace('\\','.',ltrim(substr($alias,0,$pos),'\\'));
        if((
$path=self::getPathOfAlias($namespace))!==false)
        {
            
$classFile=$path.DIRECTORY_SEPARATOR.substr($alias,$pos+1).'.php';
            if(
$forceInclude)
            {
                if(
is_file($classFile))
                    require(
$classFile);
                else
                    throw new 
CException(Yii::t('yii','Alias "{alias}" is invalid. Make sure it points to an existing PHP file.',array('{alias}'=>$alias)));
                
self::$_imports[$alias]=$alias;
            }
            else
                
self::$classMap[$alias]=$classFile;
            return 
$alias;
        }
        else
            throw new 
CException(Yii::t('yii','Alias "{alias}" is invalid. Make sure it points to an existing directory.',
                array(
'{alias}'=>$namespace)));
    }

    if((
$pos=strrpos($alias,'.'))===false)  // a simple class name
    
{
        if(
$forceInclude && self::autoload($alias))
            
self::$_imports[$alias]=$alias;
        return 
$alias;
    }

    
$className=(string)substr($alias,$pos+1);
    
$isClass=$className!=='*';

    if(
$isClass && (class_exists($className,false) || interface_exists($className,false)))
        return 
self::$_imports[$alias]=$className;

    if((
$path=self::getPathOfAlias($alias))!==false)
    {
        if(
$isClass)
        {
            if(
$forceInclude)
            {
                if(
is_file($path.'.php'))
                    require(
$path.'.php');
                else
                    throw new 
CException(Yii::t('yii','Alias "{alias}" is invalid. Make sure it points to an existing PHP file.',array('{alias}'=>$alias)));
                
self::$_imports[$alias]=$className;
            }
            else
                
self::$classMap[$className]=$path.'.php';
            return 
$className;
        }
        else  
// a directory
        
{
            if(
self::$_includePaths===null)
            {
                
self::$_includePaths=array_unique(explode(PATH_SEPARATOR,get_include_path()));
                if((
$pos=array_search('.',self::$_includePaths,true))!==false)
                    unset(
self::$_includePaths[$pos]);
            }

            
array_unshift(self::$_includePaths,$path);

            if(
self::$enableIncludePath && set_include_path('.'.PATH_SEPARATOR.implode(PATH_SEPARATOR,self::$_includePaths))===false)
                
self::$enableIncludePath=false;

            return 
self::$_imports[$alias]=$path;
        }
    }
    else
        throw new 
CException(Yii::t('yii','Alias "{alias}" is invalid. Make sure it points to an existing directory or file.',
            array(
'{alias}'=>$alias)));
}

瀵煎叆涓涓被鎴栦竴涓洰褰曘

瀵煎叆涓涓被灏卞儚鍖呭惈鐩稿簲鐨勭被鏂囦欢銆 涓昏鍖哄埆鏄鍏ヤ竴涓被姣旇緝杞诲阀锛 瀹冧粎鍦ㄧ被鏂囦欢棣栨寮曠敤鏃跺寘鍚

瀵煎叆涓涓洰褰曠浉褰撲簬娣诲姞涓涓洰褰曞埌PHP鍖呭惈璺緞涓 濡傛灉鏈夊涓洰褰曡瀵煎叆锛屽湪绫绘枃浠舵悳绱㈡椂锛 鍚庡鍏ョ殑鐩綍浼樺厛浜庝箣鍓嶅鍏ョ洰褰曪紙渚嬪锛屽畠浠娣诲姞鍒颁簡PHP鍖呭惈璺緞鐨勫墠闈級銆

璺緞鍒悕鏄敤鏉ュ鍏ヤ竴涓被鎴栫洰褰曘備緥濡傦紝



鐩稿悓鐨勮矾寰勫埆鍚嶅彲浠ュ娆″鍏ワ紝浣嗗彧鏈夐娆℃湁鏁堛 瀵煎叆涓涓洰褰曞皢涓嶄細瀵煎叆鍏朵笅闈㈢殑浠讳綍瀛愮洰褰曘

浠1.1.5鐗堟湰寮濮嬶紝杩欎釜鏂规硶涔熷彲浠ヤ娇鐢ㄥ懡浠ょ┖闂存牸寮忓鍏ヤ竴涓被 (浠匬HP 5.3鍙婁互涓婄増鏈彲鐢)銆 瀹冪被浼间娇鐢ㄨ矾寰勫埆鍚嶆牸寮忓鍏ヤ竴涓被锛 闄や簡鈥.鈥濆垎闅旂琚浛鎹㈡垚鈥淺鈥濆垎闅旂锛屼緥濡傦紝瀵煎叆 application\components\GoogleMap涓庡鍏application.components.GoogleMap鐩镐技銆 涓嶅悓鐨勬槸鍓嶈呬娇鐢ㄥ悎娉曠殑鍚嶇О,鍚庤呮槸涓嶅悎娉曠殑銆

娉ㄦ剰锛屽鏋滄垜浠娇鐢ㄥ弽鏂滅嚎浠f浛鐐瑰彿 浣跨敤鍛藉悕绌洪棿鏍煎紡瀵煎叆涓涓被瑕佹眰鍛藉悕绌洪棿鐩稿搴斾簬涓涓湁鏁堢殑璺緞鍒悕銆 渚嬪锛屽懡鍚嶇┖闂application\components蹇呴』瀵瑰簲涓涓湁鏁堢殑 璺緞鍒悕application.components

log() 鏂规硶
public static void log(string $msg, string $level='info', string $category='application')
$msg string 鏃ュ織淇℃伅
$level string 淇℃伅绛夌骇锛堜緥濡傗榯race鈥欙紝鈥榳arning鈥欙紝鈥榚rror鈥欙級銆傚畠澶у皬鍐欎笉鏁忔劅銆
$category string 淇℃伅绫诲埆锛堜緥濡傗榮ystem.web鈥欙級銆傚畠澶у皬鍐欎笉鏁忔劅銆
婧愮爜锛 framework/YiiBase.php#455 (鏄剧ず)
public static function log($msg,$level=CLogger::LEVEL_INFO,$category='application')
{
    if(
self::$_logger===null)
        
self::$_logger=new CLogger;
    if(
YII_DEBUG && YII_TRACE_LEVEL>&& $level!==CLogger::LEVEL_PROFILE)
    {
        
$traces=debug_backtrace();
        
$count=0;
        foreach(
$traces as $trace)
        {
            if(isset(
$trace['file'],$trace['line']) && strpos($trace['file'],YII_PATH)!==0)
            {
                
$msg.="\nin ".$trace['file'].' ('.$trace['line'].')';
                if(++
$count>=YII_TRACE_LEVEL)
                    break;
            }
        }
    }
    
self::$_logger->log($msg,$level,$category);
}

鍐欏叆涓鏉℃棩蹇椾俊鎭 鏃ュ織淇℃伅鍙互閫氳繃杩欎釜鏂规硶CLogger::getLogs 杩斿洖骞朵笖鍙互浣跨敤CLogRouter 璁板綍鍦ㄤ笉鍚屽獟浣撲笂锛屼緥濡傦細file锛宔mail锛宒atabase銆

powered() 鏂规硶
public static string powered()
{return} string 涓涓彲浠ュ湪浣犵殑缃戦〉涓婃樉绀虹殑Powered-by-Yii淇℃伅
婧愮爜锛 framework/YiiBase.php#539 (鏄剧ず)
public static function powered()
{
    return 
Yii::t('yii','Powered by {yii}.', array('{yii}'=>'<a href="http://www.yiiframework.com/" rel="external">Yii Framework</a>'));
}

杩斿洖涓涓彲浠ュ湪缃戦〉涓樉绀虹殑Powered-by-Yii瀛楃涓蹭俊鎭

registerAutoloader() 鏂规硶
public static void registerAutoloader(callback $callback, boolean $append=false)
$callback callback 涓涓湁鏁堢殑PHP鍥炶皟锛堝嚱鏁板悕鎴朼rray($className,$methodName))锛.
$append boolean 鏄惁鍦ㄩ粯璁ょ殑Yii绫昏嚜鍔ㄥ姞杞藉櫒鍚庨檮鍔犳柊鐨勭被鑷姩鍔犺浇鍣ㄣ
婧愮爜锛 framework/YiiBase.php#612 (鏄剧ず)
public static function registerAutoloader($callback$append=false)
{
    if(
$append)
    {
        
self::$enableIncludePath=false;
        
spl_autoload_register($callback);
    }
    else
    {
        
spl_autoload_unregister(array('YiiBase','autoload'));
        
spl_autoload_register($callback);
        
spl_autoload_register(array('YiiBase','autoload'));
    }
}

娉ㄥ唽涓涓柊鐨勭被鑷姩鍔犺浇鍣ㄣ 鏂扮殑绫昏嚜鍔ㄥ姞杞藉櫒灏嗙疆浜autoload涔嬪墠鎴 鍏朵粬宸茬粡瀛樺湪鐨勫姞杞藉櫒涔嬪悗銆

setApplication() 鏂规硶
public static void setApplication(CApplication $app)
$app CApplication 搴旂敤绋嬪簭瀹炰緥銆傚鏋滀负null锛 杩欎釜宸茬粡瀛樺湪鐨勫簲鐢ㄧ▼搴忓疄渚嬪皢琚Щ闄ゃ
婧愮爜锛 framework/YiiBase.php#149 (鏄剧ず)
public static function setApplication($app)
{
    if(
self::$_app===null || $app===null)
        
self::$_app=$app;
    else
        throw new 
CException(Yii::t('yii','Yii application can only be created once.'));
}

鍦ㄧ被闈欐佹垚鍛樹腑瀛樺偍搴旂敤绋嬪簭瀹炰緥銆 杩欎釜鏂规硶甯姪瀹炵幇CApplication鐨勫崟渚嬫ā鍧椼 閲嶅璋冪敤璇ユ柟娉曟垨CApplication鏋勯犲櫒 灏嗘姏鍑轰竴涓紓甯搞 浣跨敤app()鑾峰彇搴旂敤绋嬪簭瀹炰緥銆

setLogger() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.8锛
public static void setLogger(CLogger $logger)
$logger CLogger 鏃ュ織璁板綍鍣ㄥ璞°
婧愮爜锛 framework/YiiBase.php#530 (鏄剧ず)
public static function setLogger($logger)
{
    
self::$_logger=$logger;
}

璁剧疆鏃ュ織璁板綍鍣ㄥ璞°

setPathOfAlias() 鏂规硶
public static void setPathOfAlias(string $alias, string $path)
$alias string 璺緞鍒悕
$path string 瀵瑰簲鐨勮矾寰勫埆鍚嶏紝濡傛灉涓簄ull锛 鍒欏搴旂殑璺緞鍒悕灏嗚绉婚櫎銆
婧愮爜锛 framework/YiiBase.php#379 (鏄剧ず)
public static function setPathOfAlias($alias,$path)
{
    if(empty(
$path))
        unset(
self::$_aliases[$alias]);
    else
        
self::$_aliases[$alias]=rtrim($path,'\\/');
}

鍒涘缓涓涓矾寰勫埆鍚嶃 娉ㄦ剰锛岃鏂规硶鏃笉妫娴嬭矾寰勬槸鍚﹀瓨鍦ㄤ篃涓嶆娴嬫槸鍚﹁鑼冦

t() 鏂规硶
public static string t(string $category, string $message, array $params=array ( ), string $source=NULL, string $language=NULL)
$category string 淇℃伅绫诲埆銆傝浠呬娇鐢ㄤ竴涓崟璇嶅瓧姣嶃 娉ㄦ剰锛岀被鍒榶ii鈥欐槸棰勭暀缁橸ii妗嗘灦鏍稿績浠g爜浣跨敤鐨勶紝鍙傝CPhpMessageSource 鑾峰彇鏇村鍏充簬淇℃伅绫诲埆鐨勮В閲娿
$message string 鍘熷淇℃伅
$params array 鍙傛暟琚簲鐢ㄥ埌淇℃伅涓娇鐢ㄧ殑strtr銆 绗竴涓弬鏁板彲浠ユ槸涓涓病鏈夐敭鐨勬暟瀛椼 骞朵笖鍦ㄨ繖绉嶆儏鍐典笅锛岃繖涓柟娉曞皢璋冪敤CChoiceFormat::format 閫夋嫨涓涓傚綋鐨勪俊鎭紙杩涜锛夌炕璇戙 鑷1.1.6寮濮嬶紝浣犱负CChoiceFormat::format 浼犻掑鏁板弬鏁颁笉蹇呭皝瑁呮垚鏁扮粍銆
$source string 鎸囧畾娑堟伅婧愪娇鐢ㄧ殑搴旂敤缁勪欢銆 榛樿涓簄ull锛屾剰鎬濇槸娑堟伅浣跨敤鐨勨榗oreMessages鈥欏睘浜庘榶ii鈥欑被鍒紝 鑰屽墿浣欑殑娑堟伅浣跨敤鈥榤essages鈥欍
$language string 鐩爣璇█銆傚鏋滀负绌猴紙榛樿锛夛紝灏嗕娇鐢application language
{return} string 宸茬炕璇戠殑淇℃伅
婧愮爜锛 framework/YiiBase.php#567 (鏄剧ず)
public static function t($category,$message,$params=array(),$source=null,$language=null)
{
    if(
self::$_app!==null)
    {
        if(
$source===null)
            
$source=($category==='yii'||$category==='zii')?'coreMessages':'messages';
        if((
$source=self::$_app->getComponent($source))!==null)
            
$message=$source->translate($category,$message,$language);
    }
    if(
$params===array())
        return 
$message;
    if(!
is_array($params))
        
$params=array($params);
    if(isset(
$params[0])) // number choice
    
{
        if(
strpos($message,'|')!==false)
        {
            if(
strpos($message,'#')===false)
            {
                
$chunks=explode('|',$message);
                
$expressions=self::$_app->getLocale($language)->getPluralRules();
                if(
$n=min(count($chunks),count($expressions)))
                {
                    for(
$i=0;$i<$n;$i++)
                        
$chunks[$i]=$expressions[$i].'#'.$chunks[$i];

                    
$message=implode('|',$chunks);
                }
            }
            
$message=CChoiceFormat::format($message,$params[0]);
        }
        if(!isset(
$params['{n}']))
            
$params['{n}']=$params[0];
        unset(
$params[0]);
    }
    return 
$params!==array() ? strtr($message,$params) : $message;
}

缈昏瘧涓鏉′负鎸囧畾璇█鐨勪俊鎭 杩欎釜鏂规硶鏀寔閫夋嫨鏍煎紡锛堝弬瑙CChoiceFormat锛夛紝 渚嬪锛屾牴鎹粰瀹氱殑鏁板瓧鍊间粠鍑犱釜渚夋潯浠朵腑杩斿洖娑堟伅銆 鍋囪涓鏉′俊鎭湪涓浜涜瑷涓湁涓嶅悓鐨勫鏁版牸寮忥紝 姝ゅ姛鑳戒富瑕佺敤鏉ヨВ鍐冲鏁版牸寮忛棶棰樸

鍙傝

trace() 鏂规硶
public static void trace(string $msg, string $category='application')
$msg string 鏃ュ織淇℃伅
$category string 娑堟伅绫诲埆
婧愮爜锛 framework/YiiBase.php#440 (鏄剧ず)
public static function trace($msg,$category='application')
{
    if(
YII_DEBUG)
        
self::log($msg,CLogger::LEVEL_TRACE,$category);
}

鍐欏叆涓鏉¤窡韪俊鎭 杩欎釜鏂规硶浠呭湪璋冭瘯妯″紡涓嬪啓鍏ヤ竴鏉℃棩蹇椼

鍙傝

Copyright © 2008-2011 by Yii Software LLC
All Rights Reserved.