Validates the PrimitiveType constraint.
Expanded class hierarchy of PrimitiveTypeConstraintValidator
class PrimitiveTypeConstraintValidator extends ConstraintValidator {
/**
* Implements \Symfony\Component\Validator\ConstraintValidatorInterface::validate().
*/
public function validate($value, Constraint $constraint) {
if (!isset($value)) {
return;
}
switch ($constraint->type) {
case Primitive::BINARY:
$valid = is_resource($value);
break;
case Primitive::BOOLEAN:
$valid = is_bool($value) || $value === 0 || $value === '0' || $value === 1 || $value == '1';
break;
case Primitive::DATE:
$valid = $value instanceof DrupalDateTime && !$value
->hasErrors();
break;
case Primitive::DURATION:
$valid = $value instanceof DateInterval;
break;
case Primitive::FLOAT:
$valid = filter_var($value, FILTER_VALIDATE_FLOAT) !== FALSE;
break;
case Primitive::INTEGER:
$valid = filter_var($value, FILTER_VALIDATE_INT) !== FALSE;
break;
case Primitive::STRING:
// PHP integers, floats or booleans are valid strings also, so we
// cannot use is_string() here.
$valid = is_scalar($value);
break;
case Primitive::URI:
$valid = filter_var($value, FILTER_VALIDATE_URL);
break;
default:
$valid = FALSE;
break;
}
if (!$valid) {
$this->context
->addViolation($constraint->message, array(
'%value' => is_object($value) ? get_class($value) : (is_array($value) ? 'Array' : (string) $value),
'%type' => $constraint->type,
));
}
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConstraintValidator:: |
protected | property | ||
ConstraintValidator:: |
public | function |
Initializes the constraint validator. Overrides ConstraintValidatorInterface:: |
1 |
PrimitiveTypeConstraintValidator:: |
public | function |
Implements \Symfony\Component\Validator\ConstraintValidatorInterface::validate(). Overrides ConstraintValidatorInterface:: |