EXTMVC:
authorJochen Rau <j.rau@web.de>
Mon, 16 Mar 2009 09:27:59 +0000 (09:27 +0000)
committerJochen Rau <j.rau@web.de>
Mon, 16 Mar 2009 09:27:59 +0000 (09:27 +0000)
* next step of refactored validation

15 files changed:
typo3/sysext/extbase/Classes/Controller/TX_EXTMVC_Controller_Argument.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_AbstractValidator.php [deleted file]
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_Alphanumeric.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_ChainValidator.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_EmailAddress.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_Float.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_Integer.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_NotEmpty.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_Number.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_NumberRange.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_Raw.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_RegularExpression.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_Text.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_UUID.php
typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_ValidatorInterface.php

index bea7c71..12f0084 100644 (file)
@@ -73,13 +73,13 @@ class TX_EXTMVC_Controller_Argument {
 
        /**
         * The property validator for this argument
-        * @var TX_EXTMVC_Validation_ValidatorInterface
+        * @var TX_EXTMVC_Validation_Validator_ValidatorInterface
         */
        protected $validator = NULL;
 
        /**
         * The property validator for this arguments datatype
-        * @var TX_EXTMVC_Validation_ValidatorInterface
+        * @var TX_EXTMVC_Validation_Validator_ValidatorInterface
         */
        protected $datatypeValidator = NULL;
 
@@ -220,10 +220,10 @@ class TX_EXTMVC_Controller_Argument {
        protected function isValidValueForThisArgument($value) {
                $isValid = TRUE;
                $validatorErrors = t3lib_div::makeInstance('TX_EXTMVC_Validation_Errors');
-               if ($this->getValidator() != NULL) {
-                       $isValid &= $this->getValidator()->isValidProperty($value, $validatorErrors);
-               } elseif ($this->getDatatypeValidator() != NULL) {
-                       $isValid = $this->getDatatypeValidator()->isValidProperty($value, $validatorErrors);                    
+               if ($this->getValidator() !== NULL) {
+                       $isValid &= $this->getValidator()->isValid($value, $validatorErrors);
+               } elseif ($this->getDatatypeValidator() !== NULL) {
+                       $isValid = $this->getDatatypeValidator()->isValid($value, $validatorErrors);                    
                } else {
                        throw new TX_EXTMVC_Validation_NoValidatorFound('No appropriate validator for the argument "' . $this->getName() . '" was found.', 1235748909);
                }
@@ -279,7 +279,7 @@ class TX_EXTMVC_Controller_Argument {
        /**
         * Returns the set validator
         *
-        * @return TX_EXTMVC_Validation_ValidatorInterface The set validator, NULL if none was set
+        * @return TX_EXTMVC_Validation_Validator_ValidatorInterface The set validator, NULL if none was set
         */
        public function getValidator() {
                return $this->validator;
@@ -288,7 +288,7 @@ class TX_EXTMVC_Controller_Argument {
        /**
         * Returns the set datatype validator
         *
-        * @return TX_EXTMVC_Validation_ValidatorInterface The set datatype validator
+        * @return TX_EXTMVC_Validation_Validator_ValidatorInterface The set datatype validator
         */
        public function getDatatypeValidator() {
                return $this->datatypeValidator;
diff --git a/typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_AbstractValidator.php b/typo3/sysext/extbase/Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_AbstractValidator.php
deleted file mode 100644 (file)
index ac561de..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*                                                                        *
- * This script belongs to the FLOW3 framework.                            *
- *                                                                        *
- * It is free software; you can redistribute it and/or modify it under    *
- * the terms of the GNU Lesser General Public License as published by the *
- * Free Software Foundation, either version 3 of the License, or (at your *
- * option) any later version.                                             *
- *                                                                        *
- * This script is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN-    *
- * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser       *
- * General Public License for more details.                               *
- *                                                                        *
- * You should have received a copy of the GNU Lesser General Public       *
- * License along with the script.                                         *
- * If not, see http://www.gnu.org/licenses/lgpl.html                      *
- *                                                                        *
- * The TYPO3 project - inspiring people to share!                         *
- *                                                                        */
-
-require_once(t3lib_extMgm::extPath('extmvc') . 'Classes/Validation/Validator/TX_EXTMVC_Validation_Validator_ValidatorInterface.php');
-
-/**
- * Abstract validator
- *
- * @version $Id: $
- * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License, version 3 or later
- */
-abstract class TX_EXTMVC_Validation_Validator_AbstractValidator implements TX_EXTMVC_Validation_Validator_ValidatorInterface {
-
-}
-
-?>
\ No newline at end of file
index 0401e34..f0e9d87 100644 (file)
@@ -33,15 +33,17 @@ class TX_EXTMVC_Validation_Validator_Alphanumeric implements TX_EXTMVC_Validatio
        /**
         * Returns TRUE, if the given property ($propertyValue) is a valid
         * alphanumeric string, which is defined as [a-zA-Z0-9]*.
-        * Any errors will be stored in the given errors object.
-        * If at least one error occurred, the result is FALSE.
         *
-        * @param mixed $propertyValue The value that should be validated
-        * @param TX_EXTMVC_Validation_Errors $errors Any occured Error will be stored here
-        * @return boolean TRUE if the value could be validated. FALSE if an error occured
+        * If at least one error occurred, the result is FALSE and any errors will
+        * be stored in the given errors object.
+        *
+        * @param mixed $value The value that should be validated
+        * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
+        * @param array $validationOptions Not used
+        * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
-       public function isValidProperty($propertyValue, TX_EXTMVC_Validation_Errors &$errors) {
-               if (is_string($propertyValue) && preg_match('/^[a-z0-9]*$/i', $propertyValue)) return TRUE;
+       public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array()) {
+               if (is_string($value) && preg_match('/^[a-z0-9]*$/i', $value)) return TRUE;
                $errors->append('The given subject was not a valid integer.');
                return FALSE;
        }
index efcfa31..9ea6465 100644 (file)
@@ -46,7 +46,6 @@ class TX_EXTMVC_Validation_Validator_ChainValidator implements TX_EXTMVC_Validat
         * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
         * @param array $validationOptions Not used
         * @return boolean TRUE if the value is valid, FALSE if an error occured
-        * @author Andreas Förthner <andreas.foerthner@netlogix.de>
         */
        public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array()) {
                $subjectIsValid = TRUE;
index 040ff7c..f4ce418 100644 (file)
@@ -35,12 +35,13 @@ class TX_EXTMVC_Validation_Validator_EmailAddress implements TX_EXTMVC_Validatio
         * Any errors will be stored in the given errors object.
         * If at least one error occurred, the result is FALSE.
         *
-        * @param mixed $propertyValue The value that should be validated
-        * @param TX_EXTMVC_Validation_Errors $errors Any occured Error will be stored here
-        * @return boolean TRUE if the value could be validated. FALSE if an error occured
+        * @param mixed $value The value that should be validated
+        * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
+        * @param array $validationOptions Not used
+        * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
-       public function isValidProperty($propertyValue, TX_EXTMVC_Validation_Errors &$errors) {
-               if (filter_var($propertyValue, FILTER_VALIDATE_EMAIL) !== FALSE) return TRUE;
+       public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array()) {
+               if (filter_var($value, FILTER_VALIDATE_EMAIL) !== FALSE) return TRUE;
                $errors->append('The given subject was not a valid email address.');
                return FALSE;
        }
index 9e21bbe..0cbc2bf 100644 (file)
@@ -35,13 +35,14 @@ class TX_EXTMVC_Validation_Validator_Float implements TX_EXTMVC_Validation_Valid
         * Any errors will be stored in the given errors object.
         * If at least one error occurred, the result is FALSE.
         *
-        * @param  object $propertyValue The value that should be validated
-        * @param TX_EXTMVC_Validation_Errors $errors Any occured Error will be stored here
-        * @return boolean TRUE if the value could be validated. FALSE if an error occured
+        * @param mixed $value The value that should be validated
+        * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
+        * @param array $validationOptions Not used
+        * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
-       public function isValidProperty($propertyValue, TX_EXTMVC_Validation_Errors &$errors) {
-               if (is_float($propertyValue)) return TRUE;
-               if (is_string($propertyValue) && strpos($propertyValue, '.') && preg_match('/^[0-9.e+-]+$/', $propertyValue)) return TRUE;
+       public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array()) {
+               if (is_float($value)) return TRUE;
+               if (is_string($value) && strpos($value, '.') && preg_match('/^[0-9.e+-]+$/', $value)) return TRUE;
                $errors->append('The given subject was not a valid float.');
                return FALSE;
        }
index f9f2bfc..d1e47d9 100644 (file)
@@ -35,12 +35,13 @@ class TX_EXTMVC_Validation_Validator_Integer implements TX_EXTMVC_Validation_Val
         * Any errors will be stored in the given errors object.
         * If at least one error occurred, the result is FALSE.
         *
-        * @param mixed $propertyValue The value that should be validated
-        * @param TX_EXTMVC_Validation_Errors $errors Any occured Error will be stored here
-        * @return boolean TRUE if the value could be validated. FALSE if an error occured
+        * @param mixed $value The value that should be validated
+        * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
+        * @param array $validationOptions Not used
+        * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
-       public function isValidProperty($propertyValue, TX_EXTMVC_Validation_Errors &$errors) {
-               if (filter_var($propertyValue, FILTER_VALIDATE_INT) !== FALSE) return TRUE;
+       public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array()) {
+               if (filter_var($value, FILTER_VALIDATE_INT) !== FALSE) return TRUE;
                $errors->append('The given subject was not a valid integer.');
                return FALSE;
        }
index c8034c5..e8c837f 100644 (file)
@@ -35,16 +35,17 @@ class TX_EXTMVC_Validation_Validator_NotEmpty implements TX_EXTMVC_Validation_Va
         * Any errors will be stored in the given errors object.
         * If at least one error occurred, the result is FALSE.
         *
-        * @param mixed $propertyValue The value that should be validated
-        * @param TX_EXTMVC_Validation_Errors $errors Any occured Error will be stored here
-        * @return boolean TRUE if the value could be validated. FALSE if an error occured
+        * @param mixed $value The value that should be validated
+        * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
+        * @param array $validationOptions Not used
+        * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
-       public function isValidProperty($propertyValue, TX_EXTMVC_Validation_Errors &$errors) {
-               if ($propertyValue === NULL) {
+       public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array()) {
+               if ($value === NULL) {
                        $errors->append('The given subject was NULL.');
                        return FALSE;
                }
-               if ($propertyValue === '') {
+               if ($value === '') {
                        $errors->append('The given subject was empty.');
                        return FALSE;
                }
index 391ec2d..310fe64 100644 (file)
@@ -35,12 +35,13 @@ class TX_EXTMVC_Validation_Validator_Number implements TX_EXTMVC_Validation_Vali
         * Any errors will be stored in the given errors object.
         * If at least one error occurred, the result is FALSE.
         *
-        * @param mixed $propertyValue The value that should be validated
-        * @param TX_EXTMVC_Validation_Errors $errors Any occured Error will be stored here
-        * @return boolean TRUE if the value could be validated. FALSE if an error occured
+        * @param mixed $value The value that should be validated
+        * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
+        * @param array $validationOptions Not used
+        * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
-       public function isValidProperty($propertyValue, TX_EXTMVC_Validation_Errors &$errors) {
-               if (is_numeric($propertyValue)) return TRUE;
+       public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array()) {
+               if (is_numeric($value)) return TRUE;
                $errors->append('The given subject was not a valid number.');
                return FALSE;
        }
index 4f2fd2f..b967e54 100644 (file)
@@ -63,13 +63,14 @@ class TX_EXTMVC_Validation_Validator_NumberRange implements TX_EXTMVC_Validation
         * Any errors will be stored in the given errors object.
         * If at least one error occurred, the result is FALSE.
         *
-        * @param mixed $propertyValue The value that should be validated
-        * @param TX_EXTMVC_Validation_Errors $errors Any occured Error will be stored here
-        * @return boolean TRUE if the value could be validated. FALSE if an error occured
+        * @param mixed $value The value that should be validated
+        * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
+        * @param array $validationOptions Not used
+        * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
-       public function isValidProperty($propertyValue, TX_EXTMVC_Validation_Errors &$errors) {
-               if (!is_numeric($propertyValue)) $errors->append('The given subject was not a valid number.');
-               if ($propertyValue < $this->startRange || $propertyValue > $this->endRange) $errors->append('The given subject was not in the valid range (' . $this->startRange . ', ' . $this->endRange . ').');
+       public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array()) {
+               if (!is_numeric($value)) $errors->append('The given subject was not a valid number.');
+               if ($value < $this->startRange || $value > $this->endRange) $errors->append('The given subject was not in the valid range (' . $this->startRange . ', ' . $this->endRange . ').');
                if (count($errors) > 0) return FALSE;
                return TRUE;
        }
index ff205d0..007b249 100644 (file)
@@ -28,16 +28,17 @@ require_once(t3lib_extMgm::extPath('extmvc') . 'Classes/Validation/Validator/TX_
  * @version $ID:$
  * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License, version 3 or later
  */
-class TX_EXTMVC_Validation_Validator_Raw implements TX_EXTMVC_Validation_ValidatorInterface {
+class TX_EXTMVC_Validation_Validator_Raw implements TX_EXTMVC_Validation_Validator_ValidatorInterface {
 
        /**
         * Always returns TRUE.
         *
-        * @param mixed $propertyValue ignored
-        * @param TX_EXTMVC_Validation_Errors $errors ignored
-        * @return boolean Always TRUE
+        * @param mixed $value The value that should be validated
+        * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
+        * @param array $validationOptions Not used
+        * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
-       public function isValidProperty($propertyValue, TX_EXTMVC_Validation_Errors &$errors) {
+       public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array()) {
                return TRUE;
        }
 }
index f100f63..90c647b 100644 (file)
@@ -49,12 +49,13 @@ class TX_EXTMVC_Validation_Validator_RegularExpression implements TX_EXTMVC_Vali
         * Any errors will be stored in the given errors object.
         * If at least one error occurred, the result is FALSE.
         *
-        * @param mixed $propertyValue The value that should be validated
-        * @param TX_EXTMVC_Validation_Errors $errors Any occured Error will be stored here
-        * @return boolean TRUE if the value could be validated. FALSE if an error occured
+        * @param mixed $value The value that should be validated
+        * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
+        * @param array $validationOptions Not used
+        * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
-       public function isValidProperty($propertyValue, TX_EXTMVC_Validation_Errors &$errors) {
-               if (!is_string($propertyValue) || preg_match($this->regularExpression, $propertyValue) === 0) {
+       public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array()) {
+               if (!is_string($value) || preg_match($this->regularExpression, $value) === 0) {
                        $errors->append('The given subject did not match the pattern.');
                        return FALSE;
                }
index a4218b0..e7ff26f 100644 (file)
@@ -31,16 +31,17 @@ require_once(t3lib_extMgm::extPath('extmvc') . 'Classes/Validation/Validator/TX_
 class TX_EXTMVC_Validation_Validator_Text implements TX_EXTMVC_Validation_Validator_ValidatorInterface {
 
        /**
-        * Returns TRUE, if the given propterty ($propertyValue) is a valid text (contains no XML tags).
+        * Returns TRUE, if the given propterty ($value) is a valid text (contains no XML tags).
         * Any errors will be stored in the given errors object.
         * If at least one error occurred, the result is FALSE.
         *
-        * @param mixed $propertyValue The value that should be validated
-        * @param TX_EXTMVC_Validation_Errors $errors Any occured Error will be stored here
-        * @return boolean TRUE if the value could be validated. FALSE if an error occured
+        * @param mixed $value The value that should be validated
+        * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
+        * @param array $validationOptions Not used
+        * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
-       public function isValidProperty($propertyValue, TX_EXTMVC_Validation_Errors &$errors) {
-               if ($propertyValue !== filter_var($propertyValue, FILTER_SANITIZE_STRING)) {
+       public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array()) {
+               if ($value !== filter_var($value, FILTER_SANITIZE_STRING)) {
                        $errors->append('The given subject was not a valid text (e.g. contained XML tags)."');
                        return FALSE;
                }
index be41a15..27ff971 100644 (file)
@@ -31,16 +31,17 @@ require_once(t3lib_extMgm::extPath('extmvc') . 'Classes/Validation/Validator/TX_
 class TX_EXTMVC_Validation_Validator_UUID implements TX_EXTMVC_Validation_Validator_ValidatorInterface {
 
        /**
-        * Returns TRUE, if the given property ($propertyValue) is a formally valid UUID.
+        * Returns TRUE, if the given property ($value) is a formally valid UUID.
         * Any errors will be stored in the given errors object.
         * If at least one error occurred, the result is FALSE.
         *
-        * @param mixed $propertyValue The value that should be validated
-        * @param TX_EXTMVC_Validation_Errors $errors Any occured Error will be stored here
-        * @return boolean TRUE if the value could be validated. FALSE if an error occured
+        * @param mixed $value The value that should be validated
+        * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
+        * @param array $validationOptions Not used
+        * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
-       public function isValidProperty($propertyValue, TX_EXTMVC_Validation_Errors &$errors) {
-               if (!is_string($propertyValue) || !preg_match('/([a-f0-9]){8}-([a-f0-9]){4}-([a-f0-9]){4}-([a-f0-9]){4}-([a-f0-9]){12}/', $propertyValue)) {
+       public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array()) {
+               if (!is_string($value) || !preg_match('/([a-f0-9]){8}-([a-f0-9]){4}-([a-f0-9]){4}-([a-f0-9]){4}-([a-f0-9]){12}/', $value)) {
                        $errors->append('The given subject was not a valid UUID.');
                        return FALSE;
                }
index 0aa4a06..50570ef 100644 (file)
 interface TX_EXTMVC_Validation_Validator_ValidatorInterface {
 
        /**
-        * Returns TRUE, if the given propterty ($proptertyValue) is a valid.
-        * Any errors will be stored in the given errors object.
-        * If at least one error occurred, the result is FALSE.
+        * Checks if the given value is valid according to the validator.
         *
-        * @param  object $propertyValue: The value that should be validated
-        * @return boolean TRUE if the value could be validated. FALSE if an error occured
+        * If at least one error occurred, the result is FALSE and any errors will
+        * be stored in the given errors object.
+        *
+        * Depending on the validator implementation, additional options may be passed
+        * in an array.
+        *
+        * @param mixed $value The value that should be validated
+        * @param TX_EXTMVC_Validation_Errors $errors An Errors object which will contain any errors which occurred during validation
+        * @param array $validationOptions Not used
+        * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
-       public function isValidProperty($propertyValue, TX_EXTMVC_Validation_Errors &$errors);
+       public function isValid($value, TX_EXTMVC_Validation_Errors &$errors, array $validationOptions = array());
 }
 
 ?>
\ No newline at end of file