[TASK] Streamline phpdoc annotations in EXT:extbase
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / Validation / Validator / StringLengthValidator.php
index 3c3c60c..f0b8f9b 100644 (file)
@@ -16,85 +16,89 @@ namespace TYPO3\CMS\Extbase\Validation\Validator;
 
 /**
  * Validator for string length.
- *
- * @api
  */
-class StringLengthValidator extends AbstractValidator {
-
-       /**
-        * @var array
-        */
-       protected $supportedOptions = array(
-               'minimum' => array(0, 'Minimum length for a valid string', 'integer'),
-               'maximum' => array(PHP_INT_MAX, 'Maximum length for a valid string', 'integer')
-       );
-
-       /**
-        * Checks if the given value is a valid string (or can be cast to a string
-        * if an object is given) and its length is between minimum and maximum
-        * specified in the validation options.
-        *
-        * @param mixed $value The value that should be validated
-        * @return void
-        * @throws \TYPO3\CMS\Extbase\Validation\Exception\InvalidValidationOptionsException
-        * @api
-        */
-       public function isValid($value) {
-               if ($this->options['maximum'] < $this->options['minimum']) {
-                       throw new \TYPO3\CMS\Extbase\Validation\Exception\InvalidValidationOptionsException('The \'maximum\' is shorter than the \'minimum\' in the StringLengthValidator.', 1238107096);
-               }
+class StringLengthValidator extends AbstractValidator
+{
+    /**
+     * @var array
+     */
+    protected $supportedOptions = [
+        'minimum' => [0, 'Minimum length for a valid string', 'integer'],
+        'maximum' => [PHP_INT_MAX, 'Maximum length for a valid string', 'integer']
+    ];
 
-               if (is_object($value)) {
-                       if (!method_exists($value, '__toString')) {
-                               $this->addError('The given object could not be converted to a string.', 1238110957);
-                               return;
-                       }
-               } elseif (!is_string($value)) {
-                       $this->addError('The given value was not a valid string.', 1269883975);
-                       return;
-               }
+    /**
+     * Checks if the given value is a valid string (or can be cast to a string
+     * if an object is given) and its length is between minimum and maximum
+     * specified in the validation options.
+     *
+     * @param mixed $value The value that should be validated
+     * @throws \TYPO3\CMS\Extbase\Validation\Exception\InvalidValidationOptionsException
+     */
+    public function isValid($value)
+    {
+        if ($this->options['maximum'] < $this->options['minimum']) {
+            throw new \TYPO3\CMS\Extbase\Validation\Exception\InvalidValidationOptionsException('The \'maximum\' is shorter than the \'minimum\' in the StringLengthValidator.', 1238107096);
+        }
 
-               // @todo Use \TYPO3\CMS\Core\Charset\CharsetConverter::strlen() instead; How do we get the charset?
-               $stringLength = strlen($value);
-               $isValid = TRUE;
-               if ($stringLength < $this->options['minimum']) {
-                       $isValid = FALSE;
-               }
-               if ($stringLength > $this->options['maximum']) {
-                       $isValid = FALSE;
-               }
+        if (is_object($value)) {
+            if (!method_exists($value, '__toString')) {
+                $this->addError('The given object could not be converted to a string.', 1238110957);
+                return;
+            }
+        } elseif (!is_string($value)) {
+            $this->addError('The given value was not a valid string.', 1269883975);
+            return;
+        }
 
-               if ($isValid === FALSE) {
-                       if ($this->options['minimum'] > 0 && $this->options['maximum'] < PHP_INT_MAX) {
-                               $this->addError(
-                                       $this->translateErrorMessage(
-                                               'validator.stringlength.between',
-                                               'extbase',
-                                               array (
-                                                       $this->options['minimum'],
-                                                       $this->options['maximum']
-                                               )
-                                       ), 1428504122, array($this->options['minimum'], $this->options['maximum']));
-                       } elseif ($this->options['minimum'] > 0) {
-                               $this->addError(
-                                       $this->translateErrorMessage(
-                                               'validator.stringlength.less',
-                                               'extbase',
-                                               array(
-                                                       $this->options['minimum']
-                                               )
-                                       ), 1238108068, array($this->options['minimum']));
-                       } else {
-                               $this->addError(
-                                       $this->translateErrorMessage(
-                                               'validator.stringlength.exceed',
-                                               'extbase',
-                                               array(
-                                                       $this->options['maximum']
-                                               )
-                                       ), 1238108069, array($this->options['maximum']));
-                       }
-               }
-       }
+        $stringLength = mb_strlen($value, 'utf-8');
+        $isValid = true;
+        if ($stringLength < $this->options['minimum']) {
+            $isValid = false;
+        }
+        if ($stringLength > $this->options['maximum']) {
+            $isValid = false;
+        }
 
+        if ($isValid === false) {
+            if ($this->options['minimum'] > 0 && $this->options['maximum'] < PHP_INT_MAX) {
+                $this->addError(
+                    $this->translateErrorMessage(
+                        'validator.stringlength.between',
+                        'extbase',
+                        [
+                            $this->options['minimum'],
+                            $this->options['maximum']
+                        ]
+                    ),
+                    1428504122,
+                    [$this->options['minimum'], $this->options['maximum']]
+                );
+            } elseif ($this->options['minimum'] > 0) {
+                $this->addError(
+                    $this->translateErrorMessage(
+                        'validator.stringlength.less',
+                        'extbase',
+                        [
+                            $this->options['minimum']
+                        ]
+                    ),
+                    1238108068,
+                    [$this->options['minimum']]
+                );
+            } else {
+                $this->addError(
+                    $this->translateErrorMessage(
+                        'validator.stringlength.exceed',
+                        'extbase',
+                        [
+                            $this->options['maximum']
+                        ]
+                    ),
+                    1238108069,
+                    [$this->options['maximum']]
+                );
+            }
+        }
+    }
 }