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 浠ラ檺鍒舵鏌ョ洰褰曠殑娣卞害銆
娉ㄦ剰锛岀洰褰曠殑渚濊禆椤规鏌ユ秷鑰楀緢楂橈紝鍥犱负瀹冩秹鍙婂埌 璁块棶鐩綍涓嬪涓枃浠剁殑淇敼鏃堕棿銆
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 |
鍏叡鏂规硶
鍙椾繚鎶ゆ柟娉
| 鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
|---|---|---|
| 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<0 || $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锛屽嵆璇ユ枃浠跺簲璇ヨ妫鏌ャ 浣犲彲浠ラ噸鍐欐鏂规硶鍙鏌ョ壒瀹氱殑鏂囦欢銆