Просмотр исходного кода

Merge remote branch 'francisbesset/validators_date_datime' into francis_merge

Conflicts:
	src/Symfony/Component/Validator/Constraints/DateTimeValidator.php
	src/Symfony/Component/Validator/Constraints/DateValidator.php
Bernhard Schussek 14 лет назад
Родитель
Сommit
f801c398eb

+ 1 - 30
src/Symfony/Component/Validator/Constraints/DateTimeValidator.php

@@ -11,36 +11,7 @@
 
 namespace Symfony\Component\Validator\Constraints;
 
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-class DateTimeValidator extends ConstraintValidator
+class DateTimeValidator extends DateValidator
 {
     const PATTERN = '/^(\d{4})-(\d{2})-(\d{2}) (0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/';
-
-    public function isValid($value, Constraint $constraint)
-    {
-        if (null === $value || '' === $value) {
-            return true;
-        }
-
-        if ($value instanceof \DateTime) {
-            return true;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-
-        if (!preg_match(self::PATTERN, $value, $matches)) {
-            $this->setMessage($constraint->message, array('{{ value }}' => $value));
-
-            return false;
-        }
-
-        return checkdate($matches[2], $matches[3], $matches[1]);
-    }
 }

+ 5 - 1
src/Symfony/Component/Validator/Constraints/DateValidator.php

@@ -25,13 +25,17 @@ class DateValidator extends ConstraintValidator
             return true;
         }
 
+        if ($value instanceof \DateTime) {
+            return true;
+        }
+
         if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
             throw new UnexpectedTypeException($value, 'string');
         }
 
         $value = (string) $value;
 
-        if (!preg_match(self::PATTERN, $value, $matches)) {
+        if (!preg_match(static::PATTERN, $value, $matches)) {
             $this->setMessage($constraint->message, array('{{ value }}' => $value));
 
             return false;