Kapitel 33. Zend_Validate

Inhaltsverzeichnis

33.1. Einführung
33.2. Validator Chains
33.3. Writing Validators
33.4. Email Adressen prüfen
33.5. Hostnamen prüfen

33.1. Einführung

Die Zend_Validate Komponente bietet ein Set von üblich verwendeten Prüfungen. Sie bietet auch einen einfachen Prüf-Ketten-Mechanismus mit welchem mehrfache Prüfungen zu einem einfachen Wert in einer benutzer-definierten Art und Weise zugeordnet werden können.

What is a validator?

Eine Prüfung untersucht seine Eingabe mit Obacht auf einige Anforderungen und produziert ein boolsches Ergebnis - wenn die Eingabe erfolgreich gegen die Anforderungen geprüft werden konnte. Wenn die Eingabe den Anforderungen nicht entspricht, kann die Prüfung zusätzliche Informationen darüber bieten, welche der Anforderungen die Eingabe nicht entspricht.

Eine WebAnwendung, zum Beispiel, könnte erfordern das ein Benutzername zwischen sechs und zwölf Zeichen lang ist und dürfte nur alphanummerische Zeichen enthalten. Eine Prüfung kann dafür verwendet werden um sicherzustellen das Benutzernamen diesen Anforderungen entsprechen. Wenn ein gewählter Benutzername einer oder beiden Anforderungen nicht entspricht, wäre es nützlich zu wissen welche der Anforderungen der Benutzername nicht entsprochen hat.

Prüfungen auf diesem Weg definiert zu haben, bietet die Sammlung für Zend_Validate_Interface welche zwei Methoden definiert, isValid() und getMessages(). Die isValid() Methode führt eine Prüfung über die angegebenen Werte aus, und gibt nur dann true zurück wenn der Wert gegenüber den Kriterien der Prüfung entsprochen hat. Wenn isValid() false zurück gibt, bietet getMessages() ein Array von Nachrichten welche die Gründe für die fehlgeschlagene Prüfung beschreiben.

[Anmerkung] Anmerkung

getMessages() gibt die Fehlermeldungen der Prüfungen zurück, allerdings nur für die zuletzt durchgeführte Prüfung, da isValid() alle Nachrichten entfernt die von einem vorherigen isValid() Aufruf existiert haben.

Das folgende Beispiel zeigt die Prüfung einer E-Mail Adresse:

<?php

require_once 'Zend/Validate/EmailAddress.php';
$validator = new Zend_Validate_EmailAddress();
if ($validator->isValid($email)) {
    // EMail scheint gültig zu sein
} else {
    // EMail is ungültig; schreibe die Gründ
    foreach ($validator->getMessages() as $message) {
        echo "$message\n";
    }
}

?>