abstract class AbstractComparisonValidator

Provides a base class for the validation of property comparisons.

@author Daniel Holmes <daniel@danielholmes.org>

Hierarchy

Expanded class hierarchy of AbstractComparisonValidator

1 file declares its use of AbstractComparisonValidator
AbstractComparisonValidatorTestCase.php in drupal/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php

File

drupal/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php, line 22

Namespace

Symfony\Component\Validator\Constraints
View source
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);

}

Members

Namesort descending Modifiers Type Description Overrides
AbstractComparisonValidator::compareValues abstract protected function Compares the two given values to find if their relationship is valid 8
AbstractComparisonValidator::validate public function Checks if the passed value is valid. Overrides ConstraintValidatorInterface::validate
AbstractComparisonValidator::valueToString private function Returns a string representation of the value.
AbstractComparisonValidator::valueToType private function Returns a string representation of the type of the value.
ConstraintValidator::$context protected property
ConstraintValidator::initialize public function Initializes the constraint validator. Overrides ConstraintValidatorInterface::initialize 1