Extbase - Validierung das Validator Objekt
Validatoren
Validatoren in eigener Extension (Übersicht)
In einer eigenen Extension lassen sich die Validatoren relativ einfach verwenden.
- Im Modell bekommen die Properties die gewünschten Validierungen zugewiesen (über die Annotations)
- 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