CDbCacheDependency
Package | system.caching.dependencies |
---|---|
Inheritance | class CDbCacheDependency » CCacheDependency » CComponent |
Implements | ICacheDependency |
Since | 1.0 |
Source Code | framework/caching/dependencies/CDbCacheDependency.php |
CDbCacheDependency represents a dependency based on the query result of a SQL statement.
If the query result (a scalar) changes, the dependency is considered as changed. To specify the SQL statement, set sql property. The connectionID property specifies the ID of a CDbConnection application component. It is this DB connection that is used to perform the query.
If the query result (a scalar) changes, the dependency is considered as changed. To specify the SQL statement, set sql property. The connectionID property specifies the ID of a CDbConnection application component. It is this DB connection that is used to perform the query.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
connectionID | string | the ID of a CDbConnection application component. | CDbCacheDependency |
dependentData | mixed | the data used to determine if dependency has been changed. | CCacheDependency |
hasChanged | boolean | whether the dependency has changed. | CCacheDependency |
params | array | parameters (name=>value) to be bound to the SQL statement specified by sql. | CDbCacheDependency |
reuseDependentData | boolean | Whether this dependency is reusable or not. | CCacheDependency |
sql | string | the SQL statement whose result is used to determine if the dependency has been changed. | CDbCacheDependency |
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
dbConnection | CDbConnection | the DB connection instance | CDbCacheDependency |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__construct() | Constructor. | CDbCacheDependency |
__get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
__isset() | Checks if a property value is null. | CComponent |
__set() | Sets value of a component property. | CComponent |
__sleep() | PHP sleep magic method. | CDbCacheDependency |
__unset() | Sets a component property to be null. | CComponent |
asa() | Returns the named behavior object. | CComponent |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
evaluateDependency() | Evaluates the dependency by generating and saving the data related with dependency. | CCacheDependency |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
getDependentData() | Returns the data used to determine if dependency has been changed. This data is available after evaluateDependency is called. | CCacheDependency |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getHasChanged() | Returns whether the dependency has changed. | CCacheDependency |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
raiseEvent() | Raises an event. | CComponent |
resetReusableData() | Resets cached data for reusable dependencies. | CCacheDependency |
Protected Methods
Method | Description | Defined By |
---|---|---|
generateDependentData() | Generates the data needed to determine if dependency has been changed. | CDbCacheDependency |
getDbConnection() | Returns the DB connection instance | CDbCacheDependency |
Property Details
connectionID property
public string $connectionID;
the ID of a CDbConnection application component. Defaults to 'db'.
dbConnection property read-only
protected CDbConnection getDbConnection()
the DB connection instance
params property (available since v1.1.4)
public array $params;
parameters (name=>value) to be bound to the SQL statement specified by sql.
sql property
public string $sql;
the SQL statement whose result is used to determine if the dependency has been changed. Note, the SQL statement should return back a single value.
Method Details
__construct() method
public void __construct(string $sql=NULL) | ||
$sql | string | the SQL statement whose result is used to determine if the dependency has been changed. |
Source Code: framework/caching/dependencies/CDbCacheDependency.php#46 (show)
public function __construct($sql=null)
{
$this->sql=$sql;
}
Constructor.
__sleep() method
public array __sleep() | ||
{return} | array |
Source Code: framework/caching/dependencies/CDbCacheDependency.php#56 (show)
public function __sleep()
{
$this->_db=null;
return array_keys((array)$this);
}
PHP sleep magic method. This method ensures that the database instance is set null because it contains resource handles.
generateDependentData() method
protected mixed generateDependentData() | ||
{return} | mixed | the data needed to determine if dependency has been changed. |
Source Code: framework/caching/dependencies/CDbCacheDependency.php#68 (show)
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.'));
}
Generates the data needed to determine if dependency has been changed. This method returns the value of the global state.
getDbConnection() method
protected CDbConnection getDbConnection() | ||
{return} | CDbConnection | the DB connection instance |
Source Code: framework/caching/dependencies/CDbCacheDependency.php#99 (show)
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)));
}
}
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CDbCacheDependency