Commit b5b1d91e by Alexander Makarov

Merge branch 'origin/master'

parents 0824e1c1 6519da3c
...@@ -22,11 +22,10 @@ namespace yii\caching; ...@@ -22,11 +22,10 @@ namespace yii\caching;
class ChainedDependency extends Dependency class ChainedDependency extends Dependency
{ {
/** /**
* @var array list of dependencies that this dependency is composed of. * @var Dependency[] list of dependencies that this dependency is composed of.
* Each array element should be a dependency object or a configuration array * Each array element must be a dependency object.
* that can be used to create a dependency object via [[\Yii::createObject()]].
*/ */
public $dependencies = array(); public $dependencies;
/** /**
* @var boolean whether this dependency is depending on every dependency in [[dependencies]]. * @var boolean whether this dependency is depending on every dependency in [[dependencies]].
* Defaults to true, meaning if any of the dependencies has changed, this dependency is considered changed. * Defaults to true, meaning if any of the dependencies has changed, this dependency is considered changed.
...@@ -37,9 +36,8 @@ class ChainedDependency extends Dependency ...@@ -37,9 +36,8 @@ class ChainedDependency extends Dependency
/** /**
* Constructor. * Constructor.
* @param array $dependencies list of dependencies that this dependency is composed of. * @param Dependency[] $dependencies list of dependencies that this dependency is composed of.
* Each array element should be a dependency object or a configuration array * Each array element should be a dependency object.
* that can be used to create a dependency object via [[\Yii::createObject()]].
* @param array $config name-value pairs that will be used to initialize the object properties * @param array $config name-value pairs that will be used to initialize the object properties
*/ */
public function __construct($dependencies = array(), $config = array()) public function __construct($dependencies = array(), $config = array())
...@@ -54,9 +52,6 @@ class ChainedDependency extends Dependency ...@@ -54,9 +52,6 @@ class ChainedDependency extends Dependency
public function evaluateDependency() public function evaluateDependency()
{ {
foreach ($this->dependencies as $dependency) { foreach ($this->dependencies as $dependency) {
if (!$dependency instanceof Dependency) {
$dependency = \Yii::createObject($dependency);
}
$dependency->evaluateDependency(); $dependency->evaluateDependency();
} }
} }
...@@ -79,10 +74,7 @@ class ChainedDependency extends Dependency ...@@ -79,10 +74,7 @@ class ChainedDependency extends Dependency
*/ */
public function getHasChanged() public function getHasChanged()
{ {
foreach ($this->dependencies as $i => $dependency) { foreach ($this->dependencies as $dependency) {
if (!$dependency instanceof Dependency) {
$this->dependencies[$i] = $dependency = \Yii::createObject($dependency);
}
if ($this->dependOnAll && $dependency->getHasChanged()) { if ($this->dependOnAll && $dependency->getHasChanged()) {
return true; return true;
} elseif (!$this->dependOnAll && !$dependency->getHasChanged()) { } elseif (!$this->dependOnAll && !$dependency->getHasChanged()) {
......
...@@ -28,23 +28,25 @@ class DbDependency extends Dependency ...@@ -28,23 +28,25 @@ class DbDependency extends Dependency
public $db = 'db'; public $db = 'db';
/** /**
* @var string the SQL query whose result is used to determine if the dependency has been changed. * @var string the SQL query whose result is used to determine if the dependency has been changed.
* Only the first row of the query result will be used. This property must be always set, otherwise * Only the first row of the query result will be used.
* an exception would be raised.
*/ */
public $sql; public $sql;
/** /**
* @var array the parameters (name=>value) to be bound to the SQL statement specified by [[sql]]. * @var array the parameters (name=>value) to be bound to the SQL statement specified by [[sql]].
*/ */
public $params = array(); public $params;
/** /**
* Initializes the database dependency object. * Constructor.
* @param string $sql the SQL query whose result is used to determine if the dependency has been changed.
* @param array $params the parameters (name=>value) to be bound to the SQL statement specified by [[sql]].
* @param array $config name-value pairs that will be used to initialize the object properties
*/ */
public function init() public function __construct($sql, $params = array(), $config = array())
{ {
if ($this->sql === null) { $this->sql = $sql;
throw new InvalidConfigException('DbDependency::sql must be set.'); $this->params = $params;
} parent::__construct($config);
} }
/** /**
......
...@@ -22,7 +22,18 @@ class ExpressionDependency extends Dependency ...@@ -22,7 +22,18 @@ class ExpressionDependency extends Dependency
/** /**
* @var string the PHP expression whose result is used to determine the dependency. * @var string the PHP expression whose result is used to determine the dependency.
*/ */
public $expression = 'true'; public $expression;
/**
* Constructor.
* @param string $expression the PHP expression whose result is used to determine the dependency.
* @param array $config name-value pairs that will be used to initialize the object properties
*/
public function __construct($expression = 'true', $config = array())
{
$this->expression = $expression;
parent::__construct($config);
}
/** /**
* Generates the data needed to determine if dependency has been changed. * Generates the data needed to determine if dependency has been changed.
......
...@@ -7,8 +7,6 @@ ...@@ -7,8 +7,6 @@
namespace yii\caching; namespace yii\caching;
use yii\base\InvalidConfigException;
/** /**
* FileDependency represents a dependency based on a file's last modification time. * FileDependency represents a dependency based on a file's last modification time.
* *
...@@ -22,19 +20,19 @@ class FileDependency extends Dependency ...@@ -22,19 +20,19 @@ class FileDependency extends Dependency
{ {
/** /**
* @var string the name of the file whose last modification time is used to * @var string the name of the file whose last modification time is used to
* check if the dependency has been changed. This property must be always set, * check if the dependency has been changed.
* otherwise an exception would be raised.
*/ */
public $fileName; public $fileName;
/** /**
* Initializes the database dependency object. * Constructor.
* @param string $fileName name of the file whose change is to be checked.
* @param array $config name-value pairs that will be used to initialize the object properties
*/ */
public function init() public function __construct($fileName = null, $config = array())
{ {
if ($this->file === null) { $this->fileName = $fileName;
throw new InvalidConfigException('FileDependency::fileName must be set.'); parent::__construct($config);
}
} }
/** /**
......
...@@ -60,6 +60,15 @@ class BooleanValidator extends Validator ...@@ -60,6 +60,15 @@ class BooleanValidator extends Validator
} }
} }
public function validateValue($value)
{
if ($this->allowEmpty && $this->isEmpty($value)) {
return;
}
return ($this->strict || $value == $this->trueValue || $value == $this->falseValue)
&& (!$this->strict || $value === $this->trueValue || $value === $this->falseValue);
}
/** /**
* Returns the JavaScript needed for performing client-side validation. * Returns the JavaScript needed for performing client-side validation.
* @param \yii\base\Model $object the data object being validated * @param \yii\base\Model $object the data object being validated
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
namespace yii\validators; namespace yii\validators;
use yii\base\Component; use yii\base\Component;
use yii\base\NotSupportedException;
/** /**
* Validator is the base class for all validators. * Validator is the base class for all validators.
...@@ -81,7 +82,7 @@ abstract class Validator extends Component ...@@ -81,7 +82,7 @@ abstract class Validator extends Component
*/ */
public $message; public $message;
/** /**
* @var array list of scenarios that the validator should be applied. * @var array list of scenarios that the validator can be applied to.
*/ */
public $on = array(); public $on = array();
/** /**
...@@ -174,6 +175,11 @@ abstract class Validator extends Component ...@@ -174,6 +175,11 @@ abstract class Validator extends Component
} }
} }
public function validateValue($value)
{
throw new NotSupportedException(__CLASS__ . ' does not support validateValue().');
}
/** /**
* Returns the JavaScript needed for performing client-side validation. * Returns the JavaScript needed for performing client-side validation.
* *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment