CDbCacheDependency
鍖 | system.caching.dependencies |
---|---|
缁ф壙 | class CDbCacheDependency » CCacheDependency » CComponent |
瀹炵幇 | ICacheDependency |
婧愯嚜 | 1.0 |
鐗堟湰 | $Id: CDbCacheDependency.php 3204 2011-05-05 21:36:32Z alexander.makarow $ |
婧愮爜 | framework/caching/dependencies/CDbCacheDependency.php |
CDbCacheDependency鎸囧熀浜嶴QL璇彞鏌ヨ缁撴灉鐨勪緷璧栭」銆
鑻ユ煡璇㈢粨鏋滐紙涓涓噺锛夋敼鍙樹簡锛屽垯璁や负璇ヤ緷璧栭」鏀瑰彉銆 璁剧疆sql灞炴т互鎸囧畾SQL璇彞銆 connectionID灞炴ф寚瀹氫簡CDbConnection搴旂敤缁勪欢鐨処D銆 瀹冩槸鐢ㄦ潵鎵ц鏌ヨ鐨勬暟鎹簱杩炴帴銆
鑻ユ煡璇㈢粨鏋滐紙涓涓噺锛夋敼鍙樹簡锛屽垯璁や负璇ヤ緷璧栭」鏀瑰彉銆 璁剧疆sql灞炴т互鎸囧畾SQL璇彞銆 connectionID灞炴ф寚瀹氫簡CDbConnection搴旂敤缁勪欢鐨処D銆 瀹冩槸鐢ㄦ潵鎵ц鏌ヨ鐨勬暟鎹簱杩炴帴銆
鍏叡灞炴
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
connectionID | string | CDbConnection搴旂敤缁勪欢鐨処D銆傞粯璁ゆ槸鈥榙b鈥欍 | CDbCacheDependency |
dependentData | mixed | 鐢ㄤ互鍐冲畾渚濊禆椤规槸鍚﹁鏀瑰彉鐨勬暟鎹 杩欎簺鏁版嵁鏄彲鐢ㄧ殑鍦evaluateDependency琚皟鐢ㄥ悗銆 | CCacheDependency |
hasChanged | boolean | 渚濊禆椤规槸鍚﹁鏀瑰彉銆 | CCacheDependency |
params | array | 缁戝畾鍒sql鎸囧畾鐨凷QL璇彞鐨勫弬鏁帮紙鍚=>鍊硷級銆 | CDbCacheDependency |
sql | string | SQL璇彞锛屽畠鐨勬煡璇㈢粨鏋滅敤鏉ュ喅瀹氫緷璧栭」鏄惁琚敼鍙樸 娉ㄦ剰锛岃SQL璇彞搴旇杩斿洖涓涓崟涓鐨勫笺 | CDbCacheDependency |
鍏叡鏂规硶
鍙椾繚鎶ゆ柟娉
鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|
generateDependentData() | 鐢熸垚鍐冲畾渚濊禆椤规槸鍚﹁鏀瑰彉闇瑕佺殑鏁版嵁銆 | CDbCacheDependency |
getDbConnection() | 杩斿洖鏁版嵁搴撹繛鎺ュ疄渚嬨 | CDbCacheDependency |
灞炴ц缁
connectionID
灞炴
public string $connectionID;
CDbConnection搴旂敤缁勪欢鐨処D銆傞粯璁ゆ槸鈥榙b鈥欍
dbConnection
灞炴
鍙
protected CDbConnection getDbConnection()
鏁版嵁搴撹繛鎺ュ疄渚嬨
params
灞炴
锛堝彲鐢ㄨ嚜 v1.1.4锛
public array $params;
缁戝畾鍒sql鎸囧畾鐨凷QL璇彞鐨勫弬鏁帮紙鍚=>鍊硷級銆
sql
灞炴
public string $sql;
SQL璇彞锛屽畠鐨勬煡璇㈢粨鏋滅敤鏉ュ喅瀹氫緷璧栭」鏄惁琚敼鍙樸 娉ㄦ剰锛岃SQL璇彞搴旇杩斿洖涓涓崟涓鐨勫笺
鏂规硶璇︾粏
__construct()
鏂规硶
public void __construct(string $sql=NULL)
| ||
$sql | string | SQL璇彞锛屽畠鐨勬煡璇㈢粨鏋滅敤鏉ュ喅瀹氫緷璧栭」鏄惁琚敼鍙樸 |
婧愮爜锛 framework/caching/dependencies/CDbCacheDependency.php#47 (鏄剧ず)
public function __construct($sql=null)
{
$this->sql=$sql;
}
鏋勯犲櫒銆
__sleep()
鏂规硶
public array __sleep()
| ||
{return} | array |
婧愮爜锛 framework/caching/dependencies/CDbCacheDependency.php#57 (鏄剧ず)
public function __sleep()
{
$this->_db=null;
return array_keys((array)$this);
}
PHP鐨勯瓟鏈柟娉晄leep銆 璇ユ柟娉曚繚璇佹暟鎹簱瀹炰緥鏄痭ull锛屽洜涓哄畠鍖呭惈浜嗚祫婧愬彞鏌勩
generateDependentData()
鏂规硶
protected mixed generateDependentData()
| ||
{return} | mixed | 鍐冲畾渚濊禆椤规槸鍚﹁鏀瑰彉闇瑕佺殑鏁版嵁銆 |
婧愮爜锛 framework/caching/dependencies/CDbCacheDependency.php#68 (鏄剧ず)
protected function generateDependentData()
{
if($this->sql!==null)
{
$db=$this->getDbConnection();
$command=$db->createCommand($this->sql);
if(is_array($this->params))
{
foreach($this->params as $name=>$value)
$command->bindValue($name,$value);
}
if($db->queryCachingDuration>0)
{
// temporarily disable and re-enable query caching
$duration=$db->queryCachingDuration;
$db->queryCachingDuration=0;
$result=$command->queryRow();
$db->queryCachingDuration=$duration;
}
else
$result=$command->queryRow();
return $result;
}
else
throw new CException(Yii::t('yii','CDbCacheDependency.sql cannot be empty.'));
}
鐢熸垚鍐冲畾渚濊禆椤规槸鍚﹁鏀瑰彉闇瑕佺殑鏁版嵁銆 璇ユ柟娉曡繑鍥炲叏灞鐘舵佺殑鍊笺
getDbConnection()
鏂规硶
protected CDbConnection getDbConnection()
| ||
{return} | CDbConnection | 鏁版嵁搴撹繛鎺ュ疄渚嬨 |
婧愮爜锛 framework/caching/dependencies/CDbCacheDependency.php#99 (鏄剧ず)
protected function getDbConnection()
{
if($this->_db!==null)
return $this->_db;
else
{
if(($this->_db=Yii::app()->getComponent($this->connectionID)) instanceof CDbConnection)
return $this->_db;
else
throw new CException(Yii::t('yii','CDbCacheDependency.connectionID "{id}" is invalid. Please make sure it refers to the ID of a CDbConnection application component.',
array('{id}'=>$this->connectionID)));
}
}