Added new (clean) yii boilerplate
This commit is contained in:
117
framework/caching/dependencies/CCacheDependency.php
Normal file
117
framework/caching/dependencies/CCacheDependency.php
Normal file
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
/**
|
||||
* CCacheDependency class file.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright 2008-2013 Yii Software LLC
|
||||
* @license http://www.yiiframework.com/license/
|
||||
*/
|
||||
|
||||
/**
|
||||
* CCacheDependency is the base class for cache dependency classes.
|
||||
*
|
||||
* CCacheDependency implements the {@link ICacheDependency} interface.
|
||||
* Child classes should override its {@link generateDependentData} for
|
||||
* actual dependency checking.
|
||||
*
|
||||
* @property boolean $hasChanged Whether the dependency has changed.
|
||||
* @property mixed $dependentData The data used to determine if dependency has been changed.
|
||||
* This data is available after {@link evaluateDependency} is called.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @package system.caching.dependencies
|
||||
* @since 1.0
|
||||
*/
|
||||
class CCacheDependency extends CComponent implements ICacheDependency
|
||||
{
|
||||
/**
|
||||
* @var boolean Whether this dependency is reusable or not.
|
||||
* If set to true, dependent data for this cache dependency will only be generated once per request.
|
||||
* You can then use the same cache dependency for multiple separate cache calls on the same page
|
||||
* without the overhead of re-evaluating the dependency each time.
|
||||
* Defaults to false;
|
||||
* @since 1.1.11
|
||||
*/
|
||||
public $reuseDependentData=false;
|
||||
|
||||
/**
|
||||
* @var array cached data for reusable dependencies.
|
||||
* @since 1.1.11
|
||||
*/
|
||||
private static $_reusableData=array();
|
||||
|
||||
private $_hash;
|
||||
private $_data;
|
||||
|
||||
/**
|
||||
* Evaluates the dependency by generating and saving the data related with dependency.
|
||||
* This method is invoked by cache before writing data into it.
|
||||
*/
|
||||
public function evaluateDependency()
|
||||
{
|
||||
if ($this->reuseDependentData)
|
||||
{
|
||||
$hash=$this->getHash();
|
||||
if(!isset(self::$_reusableData[$hash]['dependentData']))
|
||||
self::$_reusableData[$hash]['dependentData']=$this->generateDependentData();
|
||||
$this->_data=self::$_reusableData[$hash]['dependentData'];
|
||||
}
|
||||
else
|
||||
$this->_data=$this->generateDependentData();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean whether the dependency has changed.
|
||||
*/
|
||||
public function getHasChanged()
|
||||
{
|
||||
if ($this->reuseDependentData)
|
||||
{
|
||||
$hash=$this->getHash();
|
||||
if(!isset(self::$_reusableData[$hash]['dependentData']))
|
||||
self::$_reusableData[$hash]['dependentData']=$this->generateDependentData();
|
||||
return self::$_reusableData[$hash]['dependentData']!=$this->_data;
|
||||
}
|
||||
else
|
||||
return $this->generateDependentData()!=$this->_data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed the data used to determine if dependency has been changed.
|
||||
* This data is available after {@link evaluateDependency} is called.
|
||||
*/
|
||||
public function getDependentData()
|
||||
{
|
||||
return $this->_data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets cached data for reusable dependencies.
|
||||
* @since 1.1.14
|
||||
*/
|
||||
public static function resetReusableData()
|
||||
{
|
||||
self::$_reusableData=array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the data needed to determine if dependency has been changed.
|
||||
* Derived classes should override this method to generate actual dependent data.
|
||||
* @return mixed the data needed to determine if dependency has been changed.
|
||||
*/
|
||||
protected function generateDependentData()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Generates a unique hash that identifies this cache dependency.
|
||||
* @return string the hash for this cache dependency
|
||||
*/
|
||||
private function getHash()
|
||||
{
|
||||
if($this->_hash===null)
|
||||
$this->_hash=sha1(serialize($this));
|
||||
return $this->_hash;
|
||||
}
|
||||
}
|
||||
97
framework/caching/dependencies/CChainedCacheDependency.php
Normal file
97
framework/caching/dependencies/CChainedCacheDependency.php
Normal file
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
/**
|
||||
* CChainedCacheDependency class file.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright 2008-2013 Yii Software LLC
|
||||
* @license http://www.yiiframework.com/license/
|
||||
*/
|
||||
|
||||
/**
|
||||
* CChainedCacheDependency represents a list of cache dependencies.
|
||||
*
|
||||
* If any of the dependencies reports a dependency change, CChainedCacheDependency
|
||||
* will return true for the checking.
|
||||
*
|
||||
* To add dependencies to CChainedCacheDependency, use {@link getDependencies Dependencies}
|
||||
* which gives a {@link CTypedList} instance and can be used like an array
|
||||
* (see {@link CList} for more details}).
|
||||
*
|
||||
* @property CTypedList $dependencies List of dependency objects.
|
||||
* @property boolean $hasChanged Whether the dependency is changed or not.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @package system.caching.dependencies
|
||||
* @since 1.0
|
||||
*/
|
||||
class CChainedCacheDependency extends CComponent implements ICacheDependency
|
||||
{
|
||||
private $_dependencies=null;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param array $dependencies the dependencies to be added to this chain.
|
||||
* @since 1.1.4
|
||||
*/
|
||||
public function __construct($dependencies=array())
|
||||
{
|
||||
if(!empty($dependencies))
|
||||
$this->setDependencies($dependencies);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return CTypedList list of dependency objects
|
||||
*/
|
||||
public function getDependencies()
|
||||
{
|
||||
if($this->_dependencies===null)
|
||||
$this->_dependencies=new CTypedList('ICacheDependency');
|
||||
return $this->_dependencies;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $values list of dependency objects or configurations to be added to this chain.
|
||||
* If a dependency is specified as a configuration, it must be an array that can be recognized
|
||||
* by {@link YiiBase::createComponent}.
|
||||
*/
|
||||
public function setDependencies($values)
|
||||
{
|
||||
$dependencies=$this->getDependencies();
|
||||
foreach($values as $value)
|
||||
{
|
||||
if(is_array($value))
|
||||
$value=Yii::createComponent($value);
|
||||
$dependencies->add($value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates the dependency by generating and saving the data related with dependency.
|
||||
*/
|
||||
public function evaluateDependency()
|
||||
{
|
||||
if($this->_dependencies!==null)
|
||||
{
|
||||
foreach($this->_dependencies as $dependency)
|
||||
$dependency->evaluateDependency();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs the actual dependency checking.
|
||||
* This method returns true if any of the dependency objects
|
||||
* reports a dependency change.
|
||||
* @return boolean whether the dependency is changed or not.
|
||||
*/
|
||||
public function getHasChanged()
|
||||
{
|
||||
if($this->_dependencies!==null)
|
||||
{
|
||||
foreach($this->_dependencies as $dependency)
|
||||
if($dependency->getHasChanged())
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
112
framework/caching/dependencies/CDbCacheDependency.php
Normal file
112
framework/caching/dependencies/CDbCacheDependency.php
Normal file
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
/**
|
||||
* CDbCacheDependency class file.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright 2008-2013 Yii Software LLC
|
||||
* @license http://www.yiiframework.com/license/
|
||||
*/
|
||||
|
||||
/**
|
||||
* 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 {@link sql} property.
|
||||
* The {@link connectionID} property specifies the ID of a {@link CDbConnection} application
|
||||
* component. It is this DB connection that is used to perform the query.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @package system.caching.dependencies
|
||||
* @since 1.0
|
||||
*/
|
||||
class CDbCacheDependency extends CCacheDependency
|
||||
{
|
||||
/**
|
||||
* @var string the ID of a {@link CDbConnection} application component. Defaults to 'db'.
|
||||
*/
|
||||
public $connectionID='db';
|
||||
/**
|
||||
* @var string 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.
|
||||
*/
|
||||
public $sql;
|
||||
/**
|
||||
* @var array parameters (name=>value) to be bound to the SQL statement specified by {@link sql}.
|
||||
* @since 1.1.4
|
||||
*/
|
||||
public $params;
|
||||
|
||||
private $_db;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param string $sql the SQL statement whose result is used to determine if the dependency has been changed.
|
||||
*/
|
||||
public function __construct($sql=null)
|
||||
{
|
||||
$this->sql=$sql;
|
||||
}
|
||||
|
||||
/**
|
||||
* PHP sleep magic method.
|
||||
* This method ensures that the database instance is set null because it contains resource handles.
|
||||
* @return array
|
||||
*/
|
||||
public function __sleep()
|
||||
{
|
||||
$this->_db=null;
|
||||
return array_keys((array)$this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the data needed to determine if dependency has been changed.
|
||||
* This method returns the value of the global state.
|
||||
* @throws CException if {@link sql} is empty
|
||||
* @return mixed the data needed to determine if dependency has been changed.
|
||||
*/
|
||||
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.'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return CDbConnection the DB connection instance
|
||||
* @throws CException if {@link connectionID} does not point to a valid application component.
|
||||
*/
|
||||
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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
135
framework/caching/dependencies/CDirectoryCacheDependency.php
Normal file
135
framework/caching/dependencies/CDirectoryCacheDependency.php
Normal file
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
/**
|
||||
* CDirectoryCacheDependency class file.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright 2008-2013 Yii Software LLC
|
||||
* @license http://www.yiiframework.com/license/
|
||||
*/
|
||||
|
||||
/**
|
||||
* CDirectoryCacheDependency represents a dependency based on change of a directory.
|
||||
*
|
||||
* CDirectoryCacheDependency performs dependency checking based on the
|
||||
* modification time of the files contained in the specified directory.
|
||||
* The directory being checked is specified via {@link directory}.
|
||||
*
|
||||
* By default, all files under the specified directory and subdirectories
|
||||
* will be checked. If the last modification time of any of them is changed
|
||||
* or if different number of files are contained in a directory, the dependency
|
||||
* is reported as changed. By specifying {@link recursiveLevel},
|
||||
* one can limit the checking to a certain depth of the directory.
|
||||
*
|
||||
* Note, dependency checking for a directory is expensive because it involves
|
||||
* accessing modification time of multiple files under the directory.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @package system.caching.dependencies
|
||||
* @since 1.0
|
||||
*/
|
||||
class CDirectoryCacheDependency extends CCacheDependency
|
||||
{
|
||||
/**
|
||||
* @var string the directory whose change is used to determine if the dependency has been changed.
|
||||
* If any of the files under the directory is changed, the dependency is considered as changed.
|
||||
*/
|
||||
public $directory;
|
||||
/**
|
||||
* @var integer the depth of the subdirectories to be recursively checked.
|
||||
* If the value is less than 0, it means unlimited depth.
|
||||
* If the value is 0, it means checking the files directly under the specified directory.
|
||||
*/
|
||||
public $recursiveLevel=-1;
|
||||
/**
|
||||
* @var string the regular expression matching valid file/directory names.
|
||||
* Only the matching files or directories will be checked for changes.
|
||||
* Defaults to null, meaning all files/directories will qualify.
|
||||
*/
|
||||
public $namePattern;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param string $directory the directory to be checked
|
||||
*/
|
||||
public function __construct($directory=null)
|
||||
{
|
||||
$this->directory=$directory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the data needed to determine if dependency has been changed.
|
||||
* This method returns the modification timestamps for files under the directory.
|
||||
* @throws CException if {@link directory} is empty
|
||||
* @return mixed the data needed to determine if dependency has been changed.
|
||||
*/
|
||||
protected function generateDependentData()
|
||||
{
|
||||
if($this->directory!==null)
|
||||
return $this->generateTimestamps($this->directory);
|
||||
else
|
||||
throw new CException(Yii::t('yii','CDirectoryCacheDependency.directory cannot be empty.'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines the last modification time for files under the directory.
|
||||
* This method may go recursively into subdirectories if {@link recursiveLevel} is not 0.
|
||||
* @param string $directory the directory name
|
||||
* @param integer $level level of the recursion
|
||||
* @throws CException if given directory is not valid
|
||||
* @return array list of file modification time indexed by the file path
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if the file should be checked for dependency.
|
||||
* This method is invoked when dependency of the whole directory is being checked.
|
||||
* By default, it always returns true, meaning the file should be checked.
|
||||
* You may override this method to check only certain files.
|
||||
* @param string $fileName the name of the file that may be checked for dependency.
|
||||
* @return boolean whether this file should be checked.
|
||||
*/
|
||||
protected function validateFile($fileName)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if the specified subdirectory should be checked for dependency.
|
||||
* This method is invoked when dependency of the whole directory is being checked.
|
||||
* By default, it always returns true, meaning the subdirectory should be checked.
|
||||
* You may override this method to check only certain subdirectories.
|
||||
* @param string $directory the name of the subdirectory that may be checked for dependency.
|
||||
* @return boolean whether this subdirectory should be checked.
|
||||
*/
|
||||
protected function validateDirectory($directory)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
55
framework/caching/dependencies/CExpressionDependency.php
Normal file
55
framework/caching/dependencies/CExpressionDependency.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/**
|
||||
* CExpressionDependency class file.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright 2008-2013 Yii Software LLC
|
||||
* @license http://www.yiiframework.com/license/
|
||||
*/
|
||||
|
||||
/**
|
||||
* CExpressionDependency represents a dependency based on the result of a PHP expression.
|
||||
*
|
||||
* CExpressionDependency performs dependency checking based on the
|
||||
* result of a PHP {@link expression}.
|
||||
* The dependency is reported as unchanged if and only if the result is
|
||||
* the same as the one evaluated when storing the data to cache.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @package system.caching.dependencies
|
||||
* @since 1.0
|
||||
*/
|
||||
class CExpressionDependency extends CCacheDependency
|
||||
{
|
||||
/**
|
||||
* @var string the PHP expression whose result is used to determine the dependency.
|
||||
* The expression can also be a valid serializable PHP callback.
|
||||
* It will be passed with a parameter which is the dependency object itself.
|
||||
*
|
||||
* The PHP expression will be evaluated using {@link evaluateExpression}.
|
||||
*
|
||||
* A PHP expression can be any PHP code that has a value. To learn more about what an expression is,
|
||||
* please refer to the {@link http://www.php.net/manual/en/language.expressions.php php manual}.
|
||||
*/
|
||||
public $expression;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param string $expression the PHP expression whose result is used to determine the dependency.
|
||||
*/
|
||||
public function __construct($expression='true')
|
||||
{
|
||||
$this->expression=$expression;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the data needed to determine if dependency has been changed.
|
||||
* This method returns the result of the PHP expression.
|
||||
* @return mixed the data needed to determine if dependency has been changed.
|
||||
*/
|
||||
protected function generateDependentData()
|
||||
{
|
||||
return $this->evaluateExpression($this->expression);
|
||||
}
|
||||
}
|
||||
53
framework/caching/dependencies/CFileCacheDependency.php
Normal file
53
framework/caching/dependencies/CFileCacheDependency.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/**
|
||||
* CFileCacheDependency class file.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright 2008-2013 Yii Software LLC
|
||||
* @license http://www.yiiframework.com/license/
|
||||
*/
|
||||
|
||||
/**
|
||||
* CFileCacheDependency represents a dependency based on a file's last modification time.
|
||||
*
|
||||
* CFileCacheDependency performs dependency checking based on the
|
||||
* last modification time of the file specified via {@link fileName}.
|
||||
* The dependency is reported as unchanged if and only if the file's
|
||||
* last modification time remains unchanged.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @package system.caching.dependencies
|
||||
* @since 1.0
|
||||
*/
|
||||
class CFileCacheDependency extends CCacheDependency
|
||||
{
|
||||
/**
|
||||
* @var string the name of the file whose last modification time is used to
|
||||
* check if the dependency has been changed.
|
||||
*/
|
||||
public $fileName;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param string $fileName name of the file whose change is to be checked.
|
||||
*/
|
||||
public function __construct($fileName=null)
|
||||
{
|
||||
$this->fileName=$fileName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the data needed to determine if dependency has been changed.
|
||||
* This method returns the file's last modification time.
|
||||
* @throws CException if {@link fileName} is empty
|
||||
* @return mixed the data needed to determine if dependency has been changed.
|
||||
*/
|
||||
protected function generateDependentData()
|
||||
{
|
||||
if($this->fileName!==null)
|
||||
return @filemtime($this->fileName);
|
||||
else
|
||||
throw new CException(Yii::t('yii','CFileCacheDependency.fileName cannot be empty.'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
/**
|
||||
* CGlobalStateCacheDependency class file.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright 2008-2013 Yii Software LLC
|
||||
* @license http://www.yiiframework.com/license/
|
||||
*/
|
||||
|
||||
/**
|
||||
* CGlobalStateCacheDependency represents a dependency based on a global state value.
|
||||
*
|
||||
* CGlobalStateCacheDependency checks if a global state is changed or not.
|
||||
* If the global state is changed, the dependency is reported as changed.
|
||||
* To specify which global state this dependency should check with,
|
||||
* set {@link stateName} to the name of the global state.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @package system.caching.dependencies
|
||||
* @since 1.0
|
||||
*/
|
||||
class CGlobalStateCacheDependency extends CCacheDependency
|
||||
{
|
||||
/**
|
||||
* @var string the name of the global state whose value is to check
|
||||
* if the dependency has changed.
|
||||
* @see CApplication::setGlobalState
|
||||
*/
|
||||
public $stateName;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param string $name the name of the global state
|
||||
*/
|
||||
public function __construct($name=null)
|
||||
{
|
||||
$this->stateName=$name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the data needed to determine if dependency has been changed.
|
||||
* This method returns the value of the global state.
|
||||
* @throws CException if {@link stateName} is empty
|
||||
* @return mixed the data needed to determine if dependency has been changed.
|
||||
*/
|
||||
protected function generateDependentData()
|
||||
{
|
||||
if($this->stateName!==null)
|
||||
return Yii::app()->getGlobalState($this->stateName);
|
||||
else
|
||||
throw new CException(Yii::t('yii','CGlobalStateCacheDependency.stateName cannot be empty.'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user