Extbase - Validierung das Validator Objekt

Aus Wikizone
Wechseln zu: Navigation, Suche

Validatoren

Validatoren in eigener Extension (Übersicht)

In einer eigenen Extension lassen sich die Validatoren relativ einfach verwenden.

  1. Im Modell bekommen die Properties die gewünschten Validierungen zugewiesen (über die Annotations)
  2. Falls nötig eigenen Validator schreiben

Alle Validatoren erben die Funktion “validate()” und “getErrors()” von \TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator. Als Rückgabe geben sie ein Array mit gut lesbarer Fehlermeldungen zurück oder einen leeren String, falls die Validierung in Ordnung war: z.B.

$email = 'john@malone.com'; // Hier testweise mal eine falsche E-Mail eingeben!
$validator = $this->objectManager->create('\TYPO3\CMS\Extbase\Validation\Validator\EmailAddressValidator');
print_r( $validator->validate($email)->getErrors() );

Quickstart

Ordnerstruktur

- ExtensionOrdner
    - Classes 
        -Validation 
            - Validator
                - MyValidatorNameValidator.php

Validator erbt von von AbstractValidator

z.B. (Extbase Buch) WordValidator.php

class WordValidator extends \TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator {
   public function isValid($property) {
        $max = $this->options['max'];
        if (str_word_count($property, 0) <= $max) {
         return TRUE;
      } else {
         $this->addError('Verringern Sie die Anzahl der Worte - es sind maximal '.$max.' erlaubt!', 1383400016);
         return FALSE;
  } }
}

Einzige zu implementierende Funktion bleibt isValid(). Liefert diese TRUE zurück, ist die Eigenschaft gültig, liefert sie FALSE zurück, ist sie ungültig. Die Eigenschaft selbst wird als Methodenparameter übergeben und steht dann innerhalb der Funktion zur Verfügung.

Achtung wird False zurückgegeben wird nur ein Fehler in den Queue eingetragen. Um das Umleiten etc. muß man sich selber kümmern.

Validierung von zusammenhängenden Feldern

Validatoren in Extbase

Auszug...

\TYPO3\CMS\Extbase\Validation\Validator\AlphanumericValidator 
\TYPO3\CMS\Extbase\Validation\Validator\ConjunctionValidator 
\TYPO3\CMS\Extbase\Validation\Validator\DateTimeValidator 
\TYPO3\CMS\Extbase\Validation\Validator\DisjunctionValidator 
\TYPO3\CMS\Extbase\Validation\Validator\EmailAddressValidator 
\TYPO3\CMS\Extbase\Validation\Validator\FloatValidator 
\TYPO3\CMS\Extbase\Validation\Validator\GenericObjectValidator 
\TYPO3\CMS\Extbase\Validation\Validator\IntegerValidator 
\TYPO3\CMS\Extbase\Validation\Validator\NotEmptyValidator 
\TYPO3\CMS\Extbase\Validation\Validator\NumberRangeValidator 
\TYPO3\CMS\Extbase\Validation\Validator\NumberValidator 
\TYPO3\CMS\Extbase\Validation\Validator\ObjectValidatorInterface 
\TYPO3\CMS\Extbase\Validation\Validator\RawValidator 
\TYPO3\CMS\Extbase\Validation\Validator\RegularExpressionValidator 
\TYPO3\CMS\Extbase\Validation\Validator\StringLengthValidator 
\TYPO3\CMS\Extbase\Validation\Validator\StringValidator 
\TYPO3\CMS\Extbase\Validation\Validator\TextValidator