Typo3 extBase Validatoren in eigener Extension nutzen

Freitag, 10. Oktober 2014

Der Typo3 Core bietet in Version 6 eine ganze Reihe von Validatoren, die z.B. zur Formularüberprüfung verwendet werden können. Eine genaue Dokumentation findet man auf dieser Seite.

\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

In einer eigenen Extension lassen sich die Validatoren relativ einfach verwenden. 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:

$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() );