Yii Framework v1.1.10 绫诲弬鑰

CDirectoryCacheDependency

system.caching.dependencies
缁ф壙 class CDirectoryCacheDependency » CCacheDependency » CComponent
瀹炵幇 ICacheDependency
婧愯嚜 1.0
鐗堟湰 $Id: CDirectoryCacheDependency.php 3500 2011-12-20 16:25:43Z mdomba $
婧愮爜 framework/caching/dependencies/CDirectoryCacheDependency.php
CDirectoryCacheDependency鎸囧熀浜庣洰褰曟敼鍙樼殑渚濊禆椤广

CDirectoryCacheDependency鎵ц鍩轰簬鎸囧畾鐩綍涓 鏂囦欢淇敼鏃堕棿鐨勪緷璧栭」妫鏌ャ 琚鏌ョ殑鐩綍閫氳繃directory鎸囧畾銆

榛樿鎯呭喌涓嬶紝鎵鏈夊湪鎸囧畾鐩綍鍙婂叾瀛愮洰褰曚笅鐨勬枃浠堕兘浼 琚鏌ャ傝嫢浠绘剰鏂囦欢鐨勬渶鍚庝慨鏀规椂闂存敼鍙橈紝 鎴栬呮枃浠舵暟鐩彉鍖栵紝 鍒欒涓轰緷璧栭」鏀瑰彉浜嗐傛寚瀹recursiveLevel 浠ラ檺鍒舵鏌ョ洰褰曠殑娣卞害銆

娉ㄦ剰锛岀洰褰曠殑渚濊禆椤规鏌ユ秷鑰楀緢楂橈紝鍥犱负瀹冩秹鍙婂埌 璁块棶鐩綍涓嬪涓枃浠剁殑淇敼鏃堕棿銆

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
dependentData mixed 鐢ㄤ互鍐冲畾渚濊禆椤规槸鍚﹁鏀瑰彉鐨勬暟鎹 杩欎簺鏁版嵁鏄彲鐢ㄧ殑鍦evaluateDependency琚皟鐢ㄥ悗銆 CCacheDependency
directory string 鐢ㄤ互鍐冲畾渚濊禆椤规槸鍚﹁鏀瑰彉鐨勭洰褰曘 璇ョ洰褰曚笅鐨勪换浣曟枃浠惰鏀瑰彉锛屽垯璁や负渚濊禆椤规敼鍙樹簡銆 CDirectoryCacheDependency
hasChanged boolean 渚濊禆椤规槸鍚﹁鏀瑰彉銆 CCacheDependency
namePattern string 鍖归厤鏈夋晥鏂囦欢鍚嶆垨鐩綍鍚嶇殑姝e垯琛ㄨ揪寮忋 鍙湁鍖归厤鐨勬枃浠舵垨鑰呯洰褰曚細琚鏌ユ槸鍚︽敼鍙樸 榛樿涓簄ull锛屾剰鍛崇潃鎵鏈夋枃浠舵垨鐩綍閮藉尮閰嶃 CDirectoryCacheDependency
recursiveLevel integer 閫掑綊妫鏌ョ殑瀛愮洰褰曟繁搴︺ 鑻ヨ鍊煎皬浜0锛屽畠鎰忓懗鐫涓嶉檺鍒舵繁搴︺侷f the value is less than 0, it means unlimited depth. CDirectoryCacheDependency

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
__call() 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 CComponent
__construct() 鏋勯犲櫒銆 CDirectoryCacheDependency
__get() 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 CComponent
__isset() 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 CComponent
__set() 璁剧疆涓涓粍浠剁殑灞炴у笺 CComponent
__unset() 璁剧疆涓涓粍浠剁殑灞炴т负null銆 CComponent
asa() 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° CComponent
attachBehavior() 闄勫姞涓涓涓哄埌缁勪欢銆 CComponent
attachBehaviors() 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 CComponent
attachEventHandler() 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 CComponent
canGetProperty() 纭畾灞炴ф槸鍚﹀彲璇汇 CComponent
canSetProperty() 纭畾灞炴ф槸鍚﹀彲鍐欍 CComponent
detachBehavior() 浠庣粍浠朵腑鍒嗙涓涓涓恒 CComponent
detachBehaviors() 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 CComponent
detachEventHandler() 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 CComponent
disableBehavior() 绂佺敤涓涓檮鍔犺涓恒 CComponent
disableBehaviors() 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
enableBehavior() 鍚敤涓涓檮鍔犺涓恒 CComponent
enableBehaviors() 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
evaluateDependency() 鏍规嵁渚濊禆鍏崇郴鏉ョ敓瀛樺拰淇濆瓨鏁版嵁浠ヨ绠椾緷璧栭」銆 CCacheDependency
evaluateExpression() 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 CComponent
getDependentData() 杩斿洖鐢ㄤ互鍐冲畾渚濊禆椤规槸鍚﹁鏀瑰彉鐨勬暟鎹 杩欎簺鏁版嵁鏄彲鐢ㄧ殑鍦evaluateDependency琚皟鐢ㄥ悗銆 CCacheDependency
getEventHandlers() 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 CComponent
getHasChanged() 杩斿洖渚濊禆椤规槸鍚﹁鏀瑰彉銆 CCacheDependency
hasEvent() 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 CComponent
hasEventHandler() 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 CComponent
hasProperty() 纭畾灞炴ф槸鍚﹁瀹氫箟銆 CComponent
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent

鍙椾繚鎶ゆ柟娉

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
generateDependentData() 鐢熸垚鍐冲畾渚濊禆椤规槸鍚﹁鏀瑰彉闇瑕佺殑鏁版嵁銆 CDirectoryCacheDependency
generateTimestamps() 纭畾鐩綍涓嬫枃浠剁殑鏈鍚庝慨鏀规椂闂淬 CDirectoryCacheDependency
validateDirectory() 妫鏌ヤ互鏌ョ湅鎸囧畾瀛愮洰褰曟槸鍚﹀簲璇ヤ负渚濊禆椤硅妫鏌ャ CDirectoryCacheDependency
validateFile() 妫鏌ヤ互鏌ョ湅璇ユ枃浠舵槸鍚﹀簲璇ヤ负渚濊禆椤硅妫鏌ャ CDirectoryCacheDependency

灞炴ц缁

directory 灞炴
public string $directory;

鐢ㄤ互鍐冲畾渚濊禆椤规槸鍚﹁鏀瑰彉鐨勭洰褰曘 璇ョ洰褰曚笅鐨勪换浣曟枃浠惰鏀瑰彉锛屽垯璁や负渚濊禆椤规敼鍙樹簡銆

namePattern 灞炴
public string $namePattern;

鍖归厤鏈夋晥鏂囦欢鍚嶆垨鐩綍鍚嶇殑姝e垯琛ㄨ揪寮忋 鍙湁鍖归厤鐨勬枃浠舵垨鑰呯洰褰曚細琚鏌ユ槸鍚︽敼鍙樸 榛樿涓簄ull锛屾剰鍛崇潃鎵鏈夋枃浠舵垨鐩綍閮藉尮閰嶃

recursiveLevel 灞炴
public integer $recursiveLevel;

閫掑綊妫鏌ョ殑瀛愮洰褰曟繁搴︺ 鑻ヨ鍊煎皬浜0锛屽畠鎰忓懗鐫涓嶉檺鍒舵繁搴︺侷f the value is less than 0, it means unlimited depth. 鑻ヨ鍊间负0锛屽畠鎰忓懗鐫鍙鏌ユ寚瀹氱洰褰曚笅鐨勬枃浠躲

鏂规硶璇︾粏

__construct() 鏂规硶
public void __construct(string $directory=NULL)
$directory string 琚鏌ョ殑鐩綍銆
婧愮爜锛 framework/caching/dependencies/CDirectoryCacheDependency.php#56 (鏄剧ず)
public function __construct($directory=null)
{
    
$this->directory=$directory;
}

鏋勯犲櫒銆

generateDependentData() 鏂规硶
protected mixed generateDependentData()
{return} mixed 鍐冲畾渚濊禆椤规槸鍚﹁鏀瑰彉闇瑕佺殑鏁版嵁銆
婧愮爜锛 framework/caching/dependencies/CDirectoryCacheDependency.php#66 (鏄剧ず)
protected function generateDependentData()
{
    if(
$this->directory!==null)
        return 
$this->generateTimestamps($this->directory);
    else
        throw new 
CException(Yii::t('yii','CDirectoryCacheDependency.directory cannot be empty.'));
}

鐢熸垚鍐冲畾渚濊禆椤规槸鍚﹁鏀瑰彉闇瑕佺殑鏁版嵁銆 璇ユ柟娉曡繑鍥炵洰褰曚笅鐨勬枃浠朵慨鏀规椂闂存埑銆

generateTimestamps() 鏂规硶
protected array generateTimestamps(string $directory, integer $level=0)
$directory string 鐩綍鍚
$level integer 閫掑綊绾у埆
{return} array 浠ユ枃浠惰矾寰勪负绱㈠紩鐨勬枃浠朵慨鏀规椂闂村垪琛
婧愮爜锛 framework/caching/dependencies/CDirectoryCacheDependency.php#81 (鏄剧ず)
protected function generateTimestamps($directory,$level=0)
{
    if((
$dir=@opendir($directory))===false)
        throw new 
CException(Yii::t('yii','"{path}" is not a valid directory.',
            array(
'{path}'=>$directory)));
    
$timestamps=array();
    while((
$file=readdir($dir))!==false)
    {
        
$path=$directory.DIRECTORY_SEPARATOR.$file;
        if(
$file==='.' || $file==='..')
            continue;
        if(
$this->namePattern!==null && !preg_match($this->namePattern,$file))
            continue;
        if(
is_file($path))
        {
            if(
$this->validateFile($path))
                
$timestamps[$path]=filemtime($path);
        }
        else
        {
            if((
$this->recursiveLevel<|| $level<$this->recursiveLevel) && $this->validateDirectory($path))
                
$timestamps=array_merge($timestamps$this->generateTimestamps($path,$level+1));
        }
    }
    
closedir($dir);
    return 
$timestamps;
}

纭畾鐩綍涓嬫枃浠剁殑鏈鍚庝慨鏀规椂闂淬 璇ユ柟娉曞彲鑳戒細閫掑綊杩涘叆瀛愮洰褰曡嫢recursiveLevel涓嶄负0銆

validateDirectory() 鏂规硶
protected boolean validateDirectory(string $directory)
$directory string 鍙兘涓轰緷璧栭」琚鏌ョ殑鐩綍鍚嶃
{return} boolean 璇ュ瓙鐩綍鏄惁搴旇琚鏌ャ
婧愮爜锛 framework/caching/dependencies/CDirectoryCacheDependency.php#130 (鏄剧ず)
protected function validateDirectory($directory)
{
    return 
true;
}

妫鏌ヤ互鏌ョ湅鎸囧畾瀛愮洰褰曟槸鍚﹀簲璇ヤ负渚濊禆椤硅妫鏌ャ 璇ユ柟娉曞湪鏁翠釜鐩綍鐨勪緷璧栭」琚鏌ユ椂璋冪敤銆 榛樿鎯呭喌涓嬶紝瀹冩绘槸杩斿洖true锛屽嵆璇ュ瓙鐩綍搴旇琚鏌ャ 浣犲彲浠ラ噸鍐欐鏂规硶鍙鏌ョ壒瀹氱殑瀛愮洰褰曘

validateFile() 鏂规硶
protected boolean validateFile(string $fileName)
$fileName string 鍙兘涓轰緷璧栭」琚鏌ョ殑鏂囦欢鍚嶃
{return} boolean 璇ユ枃浠舵槸鍚﹀簲璇ヨ妫鏌ャ
婧愮爜锛 framework/caching/dependencies/CDirectoryCacheDependency.php#117 (鏄剧ず)
protected function validateFile($fileName)
{
    return 
true;
}

妫鏌ヤ互鏌ョ湅璇ユ枃浠舵槸鍚﹀簲璇ヤ负渚濊禆椤硅妫鏌ャ 璇ユ柟娉曞湪鏁翠釜鐩綍鐨勪緷璧栭」琚鏌ユ椂璋冪敤銆 榛樿鎯呭喌涓嬶紝瀹冩绘槸杩斿洖true锛屽嵆璇ユ枃浠跺簲璇ヨ妫鏌ャ 浣犲彲浠ラ噸鍐欐鏂规硶鍙鏌ョ壒瀹氱殑鏂囦欢銆

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