Commit b5b1d91e by Alexander Makarov

Merge branch 'origin/master'

parents 0824e1c1 6519da3c
......@@ -22,11 +22,10 @@ namespace yii\caching;
class ChainedDependency extends Dependency
{
/**
* @var array list of dependencies that this dependency is composed of.
* Each array element should be a dependency object or a configuration array
* that can be used to create a dependency object via [[\Yii::createObject()]].
* @var Dependency[] list of dependencies that this dependency is composed of.
* Each array element must be a dependency object.
*/
public $dependencies = array();
public $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.
......@@ -37,9 +36,8 @@ class ChainedDependency extends Dependency
/**
* Constructor.
* @param array $dependencies list of dependencies that this dependency is composed of.
* Each array element should be a dependency object or a configuration array
* that can be used to create a dependency object via [[\Yii::createObject()]].
* @param Dependency[] $dependencies list of dependencies that this dependency is composed of.
* Each array element should be a dependency object.
* @param array $config name-value pairs that will be used to initialize the object properties
*/
public function __construct($dependencies = array(), $config = array())
......@@ -54,9 +52,6 @@ class ChainedDependency extends Dependency
public function evaluateDependency()
{
foreach ($this->dependencies as $dependency) {
if (!$dependency instanceof Dependency) {
$dependency = \Yii::createObject($dependency);
}
$dependency->evaluateDependency();
}
}
......@@ -79,10 +74,7 @@ class ChainedDependency extends Dependency
*/
public function getHasChanged()
{
foreach ($this->dependencies as $i => $dependency) {
if (!$dependency instanceof Dependency) {
$this->dependencies[$i] = $dependency = \Yii::createObject($dependency);
}
foreach ($this->dependencies as $dependency) {
if ($this->dependOnAll && $dependency->getHasChanged()) {
return true;
} elseif (!$this->dependOnAll && !$dependency->getHasChanged()) {
......
......@@ -28,23 +28,25 @@ class DbDependency extends Dependency
public $db = 'db';
/**
* @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
* an exception would be raised.
* Only the first row of the query result will be used.
*/
public $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) {
throw new InvalidConfigException('DbDependency::sql must be set.');
}
$this->sql = $sql;
$this->params = $params;
parent::__construct($config);
}
/**
......
......@@ -22,7 +22,18 @@ class ExpressionDependency extends 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.
......
......@@ -7,8 +7,6 @@
namespace yii\caching;
use yii\base\InvalidConfigException;
/**
* FileDependency represents a dependency based on a file's last modification time.
*
......@@ -22,19 +20,19 @@ class FileDependency extends Dependency
{
/**
* @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,
* otherwise an exception would be raised.
* check if the dependency has been changed.
*/
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) {
throw new InvalidConfigException('FileDependency::fileName must be set.');
}
$this->fileName = $fileName;
parent::__construct($config);
}
/**
......
......@@ -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.
* @param \yii\base\Model $object the data object being validated
......
......@@ -8,6 +8,7 @@
namespace yii\validators;
use yii\base\Component;
use yii\base\NotSupportedException;
/**
* Validator is the base class for all validators.
......@@ -81,7 +82,7 @@ abstract class Validator extends Component
*/
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();
/**
......@@ -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.
*
......
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