summaryrefslogtreecommitdiff
path: root/framework/caching/dependencies/CExpressionDependency.php
diff options
context:
space:
mode:
authorPatrick Seeger <pseeger@ccwn.org>2012-04-13 23:11:05 +0200
committerPatrick Seeger <pseeger@ccwn.org>2012-04-13 23:11:05 +0200
commit341cc4dd9c53ffbfb863e026dd58549c1082c7a7 (patch)
tree1bbbed20313bafb9b063b6b4d894fe580d8b000f /framework/caching/dependencies/CExpressionDependency.php
yii-framework 1.1.10 hinzugefügtHEADmaster
Diffstat (limited to 'framework/caching/dependencies/CExpressionDependency.php')
-rw-r--r--framework/caching/dependencies/CExpressionDependency.php53
1 files changed, 53 insertions, 0 deletions
diff --git a/framework/caching/dependencies/CExpressionDependency.php b/framework/caching/dependencies/CExpressionDependency.php
new file mode 100644
index 0000000..393ac96
--- /dev/null
+++ b/framework/caching/dependencies/CExpressionDependency.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * CExpressionDependency class file.
+ *
+ * @author Qiang Xue <qiang.xue@gmail.com>
+ * @link http://www.yiiframework.com/
+ * @copyright Copyright &copy; 2008-2011 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>
+ * @version $Id: CExpressionDependency.php 3515 2011-12-28 12:29:24Z mdomba $
+ * @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 PHP callback,
+ * including class method name (array(ClassName/Object, MethodName)),
+ * or anonymous function (PHP 5.3.0+). The function/method will be passed with a
+ * parameter which is the dependency object itself.
+ */
+ 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);
+ }
+}