diff options
Diffstat (limited to 'framework/caching/dependencies/CGlobalStateCacheDependency.php')
| -rw-r--r-- | framework/caching/dependencies/CGlobalStateCacheDependency.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/framework/caching/dependencies/CGlobalStateCacheDependency.php b/framework/caching/dependencies/CGlobalStateCacheDependency.php new file mode 100644 index 0000000..4775fc6 --- /dev/null +++ b/framework/caching/dependencies/CGlobalStateCacheDependency.php @@ -0,0 +1,54 @@ +<?php +/** + * CGlobalStateCacheDependency class file. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @link http://www.yiiframework.com/ + * @copyright Copyright © 2008-2011 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> + * @version $Id: CGlobalStateCacheDependency.php 2799 2011-01-01 19:31:13Z qiang.xue $ + * @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. + * @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.')); + } +} |
