You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					60 lines
				
				2.1 KiB
			
		
		
			
		
	
	
					60 lines
				
				2.1 KiB
			| 
								 
											14 years ago
										 
									 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @link http://www.yiiframework.com/
							 | 
						||
| 
								 
											13 years ago
										 
									 | 
							
								 * @copyright Copyright (c) 2008 Yii Software LLC
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								 * @license http://www.yiiframework.com/license/
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								namespace yii\caching;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								/**
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								 * ExpressionDependency represents a dependency based on the result of a PHP expression.
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								 *
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								 * ExpressionDependency will use `eval()` to evaluate the PHP expression.
							 | 
						||
| 
								 | 
							
								 * The dependency is reported as unchanged if and only if the result of the expression is
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								 * the same as the one evaluated when storing the data to cache.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 
											13 years ago
										 
									 | 
							
								 * A PHP expression can be any PHP code that has a value. To learn more about what an expression is,
							 | 
						||
| 
								 | 
							
								 * please refer to the [php manual](http://www.php.net/manual/en/language.expressions.php).
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								 * @author Qiang Xue <qiang.xue@gmail.com>
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								 * @since 2.0
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								 */
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								class ExpressionDependency extends Dependency
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								{
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 
											13 years ago
										 
									 | 
							
									 * @var string the string representation of a PHP expression whose result is used to determine the dependency.
							 | 
						||
| 
								 | 
							
									 * A PHP expression can be any PHP code that has a value. To learn more about what an expression is,
							 | 
						||
| 
								 | 
							
									 * please refer to the [php manual](http://www.php.net/manual/en/language.expressions.php).
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
									 */
							 | 
						||
| 
								 
											13 years ago
										 
									 | 
							
									public $expression;
							 | 
						||
| 
								 
											13 years ago
										 
									 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * @var mixed custom data associated with this dependency. In [[expression]], you may compare the value of
							 | 
						||
| 
								 | 
							
									 * this property with the latest data to determine if the dependency has changed or not.
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $data;
							 | 
						||
| 
								 
											13 years ago
										 
									 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Constructor.
							 | 
						||
| 
								 | 
							
									 * @param string $expression the PHP expression whose result is used to determine the dependency.
							 | 
						||
| 
								 
											13 years ago
										 
									 | 
							
									 * @param mixed $data the custom data associated with this dependency
							 | 
						||
| 
								 
											13 years ago
										 
									 | 
							
									 * @param array $config name-value pairs that will be used to initialize the object properties
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 
											13 years ago
										 
									 | 
							
									public function __construct($expression = 'true', $data = null, $config = array())
							 | 
						||
| 
								 
											13 years ago
										 
									 | 
							
									{
							 | 
						||
| 
								 | 
							
										$this->expression = $expression;
							 | 
						||
| 
								 
											13 years ago
										 
									 | 
							
										$this->data = $data;
							 | 
						||
| 
								 
											13 years ago
										 
									 | 
							
										parent::__construct($config);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * 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.
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
									protected function generateDependencyData()
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
									{
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
										return eval("return {$this->expression};");
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |