Provides a base class for the validation of property comparisons.
@author Daniel Holmes <daniel@danielholmes.org>
Expanded class hierarchy of AbstractComparisonValidator
abstract class AbstractComparisonValidator extends ConstraintValidator {
/**
* {@inheritDoc}
*/
public function validate($value, Constraint $constraint) {
if (!$this
->compareValues($value, $constraint->value, $constraint)) {
$this->context
->addViolation($constraint->message, array(
'{{ value }}' => $this
->valueToString($constraint->value),
'{{ compared_value }}' => $this
->valueToString($constraint->value),
'{{ compared_value_type }}' => $this
->valueToType($constraint->value),
));
}
}
/**
* Returns a string representation of the type of the value.
*
* @param mixed $value
*
* @return string
*/
private function valueToType($value) {
return is_object($value) ? get_class($value) : gettype($value);
}
/**
* Returns a string representation of the value.
*
* @param mixed $value
*
* @return string
*/
private function valueToString($value) {
if ($value instanceof \DateTime) {
return $value
->format('Y-m-d H:i:s');
}
return var_export($value, true);
}
/**
* Compares the two given values to find if their relationship is valid
*
* @param mixed $value1 The first value to compare
* @param mixed $value2 The second value to compare
*
* @return Boolean true if the relationship is valid, false otherwise
*/
protected abstract function compareValues($value1, $value2);
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AbstractComparisonValidator:: |
public | function |
Checks if the passed value is valid. Overrides ConstraintValidatorInterface:: |
|
AbstractComparisonValidator:: |
private | function | Returns a string representation of the type of the value. | |
AbstractComparisonValidator:: |
private | function | Returns a string representation of the value. | |
AbstractComparisonValidator:: |
abstract protected | function | Compares the two given values to find if their relationship is valid | 8 |
ConstraintValidator:: |
public | function |
Initializes the constraint validator. Overrides ConstraintValidatorInterface:: |
1 |
ConstraintValidator:: |
protected | property |