Standard Prüfklassen
Zend Framework kommt mit einem Standardset von Prüfklassen, welche fertig zur Verwendung sind.
Alnum
Gibt nur dann true zurück wenn $value nur alphabetische
und digitale Zeichen enthält. Dieser Prüfer enthält eine Option um auszuwählen ob
Leerzeichen als gültig anzusehen sind.
Alphabetische Zeichen bedeuten Zeichen die in jeder Spache Wörter bilden. Trotzdem wird das
englische Alphabet in den folgenden Sprachen für alphabethische Zeichen verwendet:
Chinesisch, Japanisch, Koreanisch. Die Sprache wurde von Zend_Locale spezifiziert.
Alpha
Gibt nur dann true zurück wenn $value nur alphabetische
Zeichen enthält. Dieser Prüfer enthält eine Option um auszuwählen ob Leerzeichen
als gültig anzusehen sind.
Barcode
Dieser Prüfer wird mit einem Barcode Typ instanziert gegen den ein Barcode Wert geprüft
werden soll. Aktuell werden die "UPC-A" (Universal Product Code) und
"EAN-13" (European Article Number) Barcode Typen unterstützt, und die
isValid() Methode gibt dann und nur dann true zurück wenn die Eingabe
erfolgreich gegen den Barcode Prüfalgorithmus geprüft wurde. Es sollten alle von den
Ziffern 0 bis 9 (0-9) unterschiedliche Zeichen vom Eingabewert entfernt werden bevor
dieser an den Prüfer übergeben wird.
Between
Gibt nur dann true zurück wenn $value zwischen dem minimalen und
maximalen Grenzwert ist. Der Vergleich ist standardmäßig inklusive ($value kann
gleich dem Grenzwert sein), kann aber überschrieben werden um einen strikten Vergleich dort
durchzuführen wo $value strikt größer als das Minimum und strikt kleiner als das
Maximum sein muß.
Ccnum
Gibt nur dann true zurück wenn $value dem Luhn Algorithmus (mod-10
Checksumme) für Kreditkarten Nummern folgt.
Date
Gibt nur dann true zurück wenn $value ein gültiges Datum im Format
YYYY-MM-DD ist. Wenn die optionale locale Option gesetzt ist, dann wird
das Datum entsprechend dem gesetzten Gebietsschemas geprüft. Und wenn die optionale
format Option gesetzt wird, dann wird dieses Format für die Prüfung herangezogen.
Für Details über die optionalen Parametern siehe
Zend_Date::isDate().
Digits
Gibt nur dann true zurück wenn $value nur digitale Zeichen enthält.
Float
Gibt nur dann true zurück wenn $value ein Fließkomma Wert ist.
Seit Zend Framework 1.8 verwendet diese Prüfung auch das aktuelle Gebietsschema des Browsers,
der Umgebung oder eines anwendungsweit gesetzten Gebietsschemas. Man kann natürlich die
Zugriffsmethoden get/setLocale verwenden um das verwendete Gebietsschema zu verändern oder es
bei der Erstellung einer Instanz dieser Prüfung angeben.
GreaterThan
Gibt nur dann true zurück wenn $value größer als die Minimale Grenze ist.
Hex
Gibt nur dann true zurück wenn $value nur Hexadezimale Digitale Zeichen
enthält.
Iban
Gibe nur dann true zurück wenn $value eine gültige IBAN (Internationale
Bank Account Nummer) enthält. IBAN Nummern werden gegen ein Land geprüft in dem Sie verwendet
werden und durch eine Checksumme.
Es gibt zwei Wege um IBAN Nummern zu prüfen. Als ersten Weg kann man ein Gebietsschema angeben das
das Land repräsentiert. Jede angegebene IBAN Nummer wird das gegen dieses Land geprüft.
isValid($iban)) {
// IBAN scheint gültig zu sein
} else {
// IBAN ist ungültig
foreach ($validator->getMessages() as $message) {
echo "$message\n";
}
}
]]>
Das sollte man tun wenn man IBAN Nummern gegen ein einzelnes Land prüfen will. Der einfachere
Weg der Prüfung ist es kein Gebietsschema anzugeben wie im nächsten Beispiel gezeigt.
isValid($iban)) {
// IBAN scheint gültig zu sein
} else {
// IBAN ist ungültig
}
]]>
Aber das zeigt ein großes Problem: Wenn man nur IBAN Nummern von einem einzelnen Land akzeptieren
darf, zum Beispiel Frankreich, sind auch die IBAN Nummer von anderen Ländern gültig. Deshalb als
Erinnerung: Wenn man IBAN Nummern gegen ein definiertes Land zu prüfen hat, sollte man ein
Gebietsschema angeben. Und wenn man alle IBAN Nummern akzeptieren will unabhängig von irgendeinem
Land kann der Einfachheit halber das Gebietsschema unterdrückt werden.
InArray
Gibt nur dann true zurück wenn ein "needle" $value in einem "haystack"
Array enthalten ist. Wenn die Strict Option true ist, wird der Typ von
$value auch geprüft.
Int
Gibt nur dann true zurück wenn $value ein gültiger Integer ist.
Seit Zend Framework 1.8 verwendet diese Prüfung auch das aktuelle Gebietsschema des Browsers,
der Umgebung oder eines anwendungsweit gesetzten Gebietsschemas. Man kann natürlich die
Zugriffsmethoden get/setLocale verwenden um das verwendete Gebietsschema zu verändern oder es
bei der Erstellung einer Instanz dieser Prüfung angeben.
Ip
Gibt nur dann true zurück wenn $value eine gültige IP Adresse ist.
LessThan
Gibt nur dann true zurück wenn $value kleiner als die Maximale Grenze ist.
NotEmpty
Gibt nur dann true zurück wenn $value kein leerer Wert ist.
Regex
Gibt nur dann true zurück wenn $value mit einem Regular Expression Pattern
geprüft werden kann.
StringLength
Gibt nur dann true zurück wenn die Länge des Strings von $value
mindstens ein Minimum und nicht größer als ein Maximum ist (wenn die max Option nicht
null ist). Wirft die setMin() Methode eine Ausnahme wenn die minimale
Länge auf einen größeren Wert gesetzt wird als die maximale Länge, und die setMax()
Methode wirft eine Ausnahme wenn die maximale Länge auf einen kleineren Wert als die minimale
Länge gesetzt wird. Seit Version 1.0.2 unterstützt diese Klasse UTF-8 und andere Zeichensätze,
basierend auf dem aktuellen Wert von
iconv.internal_encoding.
Wenn man ein anderes Encoding benötigt kann man es mit den Zugriffsmethoden getEncoding und
setEncoding setzen.