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.
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.
Die Ccnum Prüfung sollte nicht mehr eingesetzt werden.
Stattdessen sollte man die CreditCard Prüfung verwenden.
Aus Gründen der Sicherheit sollte man CreditCard statt Ccnum verwenden.
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 welches 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.
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.
LessThan
Gibt nur dann TRUE zurück wenn $value kleiner
als die Maximale Grenze 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.