12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?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;
- }
- }
|