|
|
@@ -5,48 +5,52 @@
|
|
|
<title>Zend_Filter_Input</title>
|
|
|
|
|
|
<para>
|
|
|
- Zend_Filter_Input bietet ein ausgezeichnetes Interfave um mehrere Filter und Prüfer zu assoziieren, Sie
|
|
|
- Kollektionen von Daten hinzuzufügen, und Eingabewerte zu empfangen nachdem diese durch die Filter und
|
|
|
- Prüfer bearbeitet wurden. Werte werden standardmäßig in kommentiertem Format zurückgegeben für sichere
|
|
|
- HTML Ausgabe.
|
|
|
+ Zend_Filter_Input bietet ein ausgezeichnetes Interfave um mehrere Filter und Prüfer zu
|
|
|
+ assoziieren, Sie Kollektionen von Daten hinzuzufügen, und Eingabewerte zu empfangen nachdem
|
|
|
+ diese durch die Filter und Prüfer bearbeitet wurden. Werte werden standardmäßig in
|
|
|
+ kommentiertem Format zurückgegeben für sichere HTML Ausgabe.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Angenommen das diese Klasse ein Käfig für externe Daten ist. Daten betreten die Anwendung von externen
|
|
|
- Quellen, wie HTTP Anfrageparameter, HTTP Header, ein Web Service, oder sogar durch Lesen von eine Datenbank
|
|
|
- oder anderen Dateien. Daten werden zuerst in den Käfig gesperrt, und die Anwendung kann diese Daten nur dann
|
|
|
- Stück für Stück empfangen wenn dem Käfig gesagt wird, was diese Daten sein sollten und wie geplant ist diese
|
|
|
- zu verwenden. Der Käfig inspiziert die Daten auf Gültigkeit. Es kann passieren das er die Datenwerte
|
|
|
+ Angenommen das diese Klasse ein Käfig für externe Daten ist. Daten betreten die Anwendung
|
|
|
+ von externen Quellen, wie HTTP Anfrageparameter, HTTP Header, ein Web Service, oder sogar
|
|
|
+ durch Lesen von eine Datenbank oder anderen Dateien. Daten werden zuerst in den Käfig
|
|
|
+ gesperrt, und die Anwendung kann diese Daten nur dann Stück für Stück empfangen wenn dem
|
|
|
+ Käfig gesagt wird, was diese Daten sein sollten und wie geplant ist diese zu verwenden. Der
|
|
|
+ Käfig inspiziert die Daten auf Gültigkeit. Es kann passieren das er die Datenwerte
|
|
|
kommentiert für den entsprechenden Kontext. Der Käfig entlässt die Daten nur wen diese alle
|
|
|
Notwendigkeiten komplett erfüllen. Mit einem einzigen und bequemen Interface, wird gutes
|
|
|
- Programmierverhalten ermöglicht und es lässt Entwickler darüber nachdenken wie die Daten verwendet werden.
|
|
|
+ Programmierverhalten ermöglicht und es lässt Entwickler darüber nachdenken wie die Daten
|
|
|
+ verwendet werden.
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
<emphasis>Filter</emphasis> wandeln Eingabewerte um, inden Sie Zeichen in dem Wert
|
|
|
- entfernen oder Ändern. Das Ziel ist es Eingabewerte zu "normalisieren" bis diese einem
|
|
|
- erwarteten Format entsprechen. Zum Beispiel, wenn ein String von nummerischen Zeichen benötigt wird,
|
|
|
- und der Eingabewert "abc123" ist dann könnte eine erwartete Umwandlung die Änderung des Wertes in
|
|
|
- den String "123" sein.
|
|
|
+ entfernen oder Ändern. Das Ziel ist es Eingabewerte zu "normalisieren" bis diese
|
|
|
+ einem erwarteten Format entsprechen. Zum Beispiel, wenn ein String von nummerischen
|
|
|
+ Zeichen benötigt wird, und der Eingabewert "abc123" ist dann könnte eine erwartete
|
|
|
+ Umwandlung die Änderung des Wertes in den String "123" sein.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
<emphasis>Prüfer</emphasis> prüfen Eingabewerte gegenüber Kriterien und melden ob
|
|
|
- diese den Test bestanden haben oder nicht. Der Wert wird nicht geändert, aber die Prüfung kann
|
|
|
- fehlschlagen. Zum Beispiel, wenn ein String wie eine Email Adresse aussehen muß, und der Eingabewert
|
|
|
- "abc123" ist, dann wird der Wert als nicht gültig angenommen.
|
|
|
+ diese den Test bestanden haben oder nicht. Der Wert wird nicht geändert, aber die
|
|
|
+ Prüfung kann fehlschlagen. Zum Beispiel, wenn ein String wie eine Email Adresse
|
|
|
+ aussehen muß, und der Eingabewert "abc123" ist, dann wird der Wert als nicht gültig
|
|
|
+ angenommen.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
<emphasis>Auskommentierer</emphasis> wandeln einen Wert um indem Sie magisches
|
|
|
- Verhalten von bestimmten Zeichen entfernen. In einigen Ausgabekontexten haben speziellen Zeichen
|
|
|
- eine Bedeutung. Zum Beispiel das Zeichen '<' und '>' begrenzen HTML Tags, und wenn ein String
|
|
|
- diese Zeichen enthält und in einem HTML Kontext ausgegeben wird, könnte der Inhalt zwischen Ihnen
|
|
|
- die Ausgabe oder Funktionalität der HTML Präsentation beeinflussen. Das auskommentieren der Zeichen
|
|
|
+ Verhalten von bestimmten Zeichen entfernen. In einigen Ausgabekontexten haben
|
|
|
+ speziellen Zeichen eine Bedeutung. Zum Beispiel das Zeichen '<' und '>'
|
|
|
+ begrenzen HTML Tags, und wenn ein String diese Zeichen enthält und in einem HTML
|
|
|
+ Kontext ausgegeben wird, könnte der Inhalt zwischen Ihnen die Ausgabe oder
|
|
|
+ Funktionalität der HTML Präsentation beeinflussen. Das auskommentieren der Zeichen
|
|
|
entfernt die spezielle Bedeutung, damit Sie als literale Zeichen ausgegeben werden.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
@@ -88,16 +92,16 @@
|
|
|
<title>Filter und Prüfregeln deklarieren</title>
|
|
|
|
|
|
<para>
|
|
|
- Vor der Erstellung einer Instanz von Zend_Filter_Input, muß ein Array von Filterregeln deklariert werden
|
|
|
- und auch ein Array von Prüfregeln. Dieses assoziative Array verbindet einen Regelnamen mit einem Filter
|
|
|
- oder Prüfer oder einer Kette von Filtern oder Prüfern.
|
|
|
+ Vor der Erstellung einer Instanz von Zend_Filter_Input, muß ein Array von Filterregeln
|
|
|
+ deklariert werden und auch ein Array von Prüfregeln. Dieses assoziative Array verbindet
|
|
|
+ einen Regelnamen mit einem Filter oder Prüfer oder einer Kette von Filtern oder Prüfern.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Das folgende Beispiel eines Sets von Filterregeln deklariert, daß das Feld 'month' von Zend_Filter_Digits
|
|
|
- gefiltert wird, und das Feld 'account' von Zend_Filter_StringTrim gefiltert wird. Anschließend wird
|
|
|
- ein Set von Prüfregeln deklariert welches prüft das das Feld 'account' nur dann gültig ist wenn es
|
|
|
- nur alphabetische Zeichen enthält.
|
|
|
+ Das folgende Beispiel eines Sets von Filterregeln deklariert, daß das Feld 'month' von
|
|
|
+ Zend_Filter_Digits gefiltert wird, und das Feld 'account' von Zend_Filter_StringTrim
|
|
|
+ gefiltert wird. Anschließend wird ein Set von Prüfregeln deklariert welches prüft das
|
|
|
+ das Feld 'account' nur dann gültig ist wenn es nur alphabetische Zeichen enthält.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -112,9 +116,10 @@ $validators = array(
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Jeder Schlüssel im obigen <code>$filters</code> Array ist der Name einer Regel die auf einen Filter
|
|
|
- für ein spezielles Datenfeld angewendet wird. Standardmäßig, ist der Name der Regel auch der Name des
|
|
|
- Feldes der Eingabedaten auf die die Regel angewendet werden soll.
|
|
|
+ Jeder Schlüssel im obigen <code>$filters</code> Array ist der Name einer Regel die auf
|
|
|
+ einen Filter für ein spezielles Datenfeld angewendet wird. Standardmäßig, ist der Name
|
|
|
+ der Regel auch der Name des Feldes der Eingabedaten auf die die Regel angewendet werden
|
|
|
+ soll.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -147,11 +152,11 @@ $validators = array(
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- Ein Array um eine Kette von Filtern oder Prüfern zu deklarieren. Die Elemente dieses Arrays
|
|
|
- können Strings sein die Klassennamen entsprechen oder Filter/Prüfobjekte, wie in den oben
|
|
|
- beschriebenen Fällen. Zusätzlich kann eine dritte Wahl verwendet werden: Ein Array das
|
|
|
- einen String enthält der dem Klassennamen entspricht gefolgt von Argumenten die dessen
|
|
|
- Konstruktor übergeben werden.
|
|
|
+ Ein Array um eine Kette von Filtern oder Prüfern zu deklarieren. Die Elemente
|
|
|
+ dieses Arrays können Strings sein die Klassennamen entsprechen oder
|
|
|
+ Filter/Prüfobjekte, wie in den oben beschriebenen Fällen. Zusätzlich kann eine
|
|
|
+ dritte Wahl verwendet werden: Ein Array das einen String enthält der dem
|
|
|
+ Klassennamen entspricht gefolgt von Argumenten die dessen Konstruktor übergeben werden.
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
$validators = array(
|
|
|
@@ -168,17 +173,19 @@ $validators = array(
|
|
|
|
|
|
<note>
|
|
|
<para>
|
|
|
- Wenn ein Filter oder Prüfer mit Konstruktor Argumenten in einem Array deklariert wird, muß ein Array
|
|
|
- für die Regel erstellt werden, selbst wenn die Regel nur einen Filter oder Prüfer enthält.
|
|
|
+ Wenn ein Filter oder Prüfer mit Konstruktor Argumenten in einem Array deklariert
|
|
|
+ wird, muß ein Array für die Regel erstellt werden, selbst wenn die Regel nur einen
|
|
|
+ Filter oder Prüfer enthält.
|
|
|
</para>
|
|
|
</note>
|
|
|
|
|
|
<para>
|
|
|
- Es kann ein spezieller "Wildcard" Regelschlüssel <code>'*'</code>, entweder im Array des Filters oder im
|
|
|
- Array des Prüfers, verwendet werden. Das bedeutet das der Filter oder Prüfer der in dieser Regel
|
|
|
- deklariert wird allen Feldern der Eingabedaten zugewiesen wird. Es gilt zu beachten das die Reihenfolge
|
|
|
- der Einträge im Array des Filters oder im Array des Prüfers bedeutend ist; die Regeln werden in der
|
|
|
- gleichen Reihenfolge zugewiesen in dem diese deklariert wurden.
|
|
|
+ Es kann ein spezieller "Wildcard" Regelschlüssel <code>'*'</code>, entweder im Array des
|
|
|
+ Filters oder im Array des Prüfers, verwendet werden. Das bedeutet das der Filter oder
|
|
|
+ Prüfer der in dieser Regel deklariert wird allen Feldern der Eingabedaten zugewiesen
|
|
|
+ wird. Es gilt zu beachten das die Reihenfolge der Einträge im Array des Filters oder im
|
|
|
+ Array des Prüfers bedeutend ist; die Regeln werden in der gleichen Reihenfolge
|
|
|
+ zugewiesen in dem diese deklariert wurden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -195,9 +202,10 @@ $filters = array(
|
|
|
<title>Filter und Prüfbearbeiter erstellen</title>
|
|
|
|
|
|
<para>
|
|
|
- Nachdem die Filter und Prüfarrays deklariert wurden, können diese als Argumente im Konstruktor von
|
|
|
- Zend_Filter_Input verwendet werden. Das gibt ein Objekt zurück welches alle Filter- und Prüfregeln
|
|
|
- kennt, und das verwendet werden kann um ein oder mehrere Sets von Eingabedaten zu bearbeiten.
|
|
|
+ Nachdem die Filter und Prüfarrays deklariert wurden, können diese als Argumente im
|
|
|
+ Konstruktor von Zend_Filter_Input verwendet werden. Das gibt ein Objekt zurück welches
|
|
|
+ alle Filter- und Prüfregeln kennt, und das verwendet werden kann um ein oder mehrere
|
|
|
+ Sets von Eingabedaten zu bearbeiten.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -205,10 +213,10 @@ $input = new Zend_Filter_Input($filters, $validators);
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Man kann Eingabedaten als drittes Argument im Konstruktor spezifizieren. Die Datenstruktur ist ein
|
|
|
- assoziatives Array. Die superglobalen Standardvariablen in PHP, <code>$_GET</code> und
|
|
|
- <code>$_POST</code>, sind Beispiele für dieses Format. Man kann jede dieser Variablen als Eingabedaten
|
|
|
- für Zend_Filter_Input verwenden.
|
|
|
+ Man kann Eingabedaten als drittes Argument im Konstruktor spezifizieren. Die
|
|
|
+ Datenstruktur ist ein assoziatives Array. Die superglobalen Standardvariablen in PHP,
|
|
|
+ <code>$_GET</code> und <code>$_POST</code>, sind Beispiele für dieses Format. Man kann
|
|
|
+ jede dieser Variablen als Eingabedaten für Zend_Filter_Input verwenden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -218,8 +226,9 @@ $input = new Zend_Filter_Input($filters, $validators, $data);
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Alternativ kann die <code>setData()</code> Methode verwendet werden, indem ein assoziatives Array von
|
|
|
- Schlüssel/Werte Paaren, im selben Format wie oben beschrieben, übergeben wird.
|
|
|
+ Alternativ kann die <code>setData()</code> Methode verwendet werden, indem ein
|
|
|
+ assoziatives Array von Schlüssel/Werte Paaren, im selben Format wie oben beschrieben,
|
|
|
+ übergeben wird.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -228,9 +237,10 @@ $input->setData($newData);
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Die <code>setData()</code> Methode definiert Daten nocheinmal, in einem existierenden Zend_Filter_Input
|
|
|
- Objekt ohne die Filter- und Prüfregeln zu verändern. Wenn diese Methode verwendet wird können die selben
|
|
|
- Regeln, an anderen Sets von Eingabedaten, wieder verwendet werden.
|
|
|
+ Die <code>setData()</code> Methode definiert Daten nocheinmal, in einem existierenden
|
|
|
+ Zend_Filter_Input Objekt ohne die Filter- und Prüfregeln zu verändern. Wenn diese
|
|
|
+ Methode verwendet wird können die selben Regeln, an anderen Sets von Eingabedaten,
|
|
|
+ wieder verwendet werden.
|
|
|
</para>
|
|
|
|
|
|
</sect2>
|
|
|
@@ -240,9 +250,9 @@ $input->setData($newData);
|
|
|
<title>Geprüfte Felder und andere Reporte empfangen</title>
|
|
|
|
|
|
<para>
|
|
|
- Nachdem Filter und Prüfer deklariert wurden und der Eingabeprozessor erstellt wurde, können Reporte von
|
|
|
- fehlenden, unbekannten und ungültigen Feldern empfangen werden. Man kann auch die Werte der Felder
|
|
|
- erhalten, nachdem die Filter angewendet wurden.
|
|
|
+ Nachdem Filter und Prüfer deklariert wurden und der Eingabeprozessor erstellt wurde,
|
|
|
+ können Reporte von fehlenden, unbekannten und ungültigen Feldern empfangen werden. Man
|
|
|
+ kann auch die Werte der Felder erhalten, nachdem die Filter angewendet wurden.
|
|
|
</para>
|
|
|
|
|
|
<sect3 id="zend.filter.input.results.isvalid">
|
|
|
@@ -250,9 +260,10 @@ $input->setData($newData);
|
|
|
<title>Abfragen ob die Eingabe gültig ist</title>
|
|
|
|
|
|
<para>
|
|
|
- Wenn alle Eingabedaten die Prüfregeln bestanden haben, gibt die <code>isValid()</code> Methode
|
|
|
- <code>true</code> zurück. Wenn irgendein Feld ungültig ist oder ein benötigtes Feld fehlt, gibt die
|
|
|
- <code>isValid()</code> Methode <code>false</code> zurück.
|
|
|
+ Wenn alle Eingabedaten die Prüfregeln bestanden haben, gibt die
|
|
|
+ <code>isValid()</code> Methode <code>true</code> zurück. Wenn irgendein Feld
|
|
|
+ ungültig ist oder ein benötigtes Feld fehlt, gibt die <code>isValid()</code> Methode
|
|
|
+ <code>false</code> zurück.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -262,9 +273,9 @@ if ($input->isValid()) {
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Diese Methode akzeptiert ein optionales String Argument, das ein individuelles Feld benennt.
|
|
|
- Wenn das spezifizierte Feld die Prüfung passiert und bereit ist um abgeholt zu werden, gibt
|
|
|
- <code>isValid('fieldName')</code> den Wert <code>true</code> zurück.
|
|
|
+ Diese Methode akzeptiert ein optionales String Argument, das ein individuelles Feld
|
|
|
+ benennt. Wenn das spezifizierte Feld die Prüfung passiert und bereit ist um abgeholt
|
|
|
+ zu werden, gibt <code>isValid('fieldName')</code> den Wert <code>true</code> zurück.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -282,22 +293,24 @@ if ($input->isValid('month')) {
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <emphasis>Ungültige</emphasis> Felder sind jene, die einen oder mehrere Ihrer
|
|
|
- Prüfungen nicht bestehen.
|
|
|
+ <emphasis>Ungültige</emphasis> Felder sind jene, die einen oder mehrere
|
|
|
+ Ihrer Prüfungen nicht bestehen.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
<emphasis>Fehlende</emphasis> Felder sind jene die nicht in den
|
|
|
- Eingabedaten vorhanden sind, aber im Metakommando <code>'presence'=>'required'</code>
|
|
|
- (Siehe die <link linkend="zend.filter.input.metacommands.presence">spätere Sektion</link>
|
|
|
+ Eingabedaten vorhanden sind, aber im Metakommando
|
|
|
+ <code>'presence'=>'required'</code> (Siehe die <link
|
|
|
+ linkend="zend.filter.input.metacommands.presence">spätere Sektion</link>
|
|
|
über Metakommandos) deklariert wurden.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <emphasis>Unbekannte</emphasis> Felder sind jene die in keiner einzigen Regel,
|
|
|
- im Array der Prüfer, deklariert wurden, aber in den Eingabedaten vorkommen.
|
|
|
+ <emphasis>Unbekannte</emphasis> Felder sind jene die in keiner einzigen
|
|
|
+ Regel, im Array der Prüfer, deklariert wurden, aber in den Eingabedaten
|
|
|
+ vorkommen.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
@@ -324,30 +337,32 @@ if ($input->hasUnknown()) {
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Das Ergebnis der <code>getMessages()</code> Methode ist ein assoziatives Array, das die Regelnamen
|
|
|
- einem Array von Fehlermeldungen, relativ zu diesen Regeln, zuordnet. Es ist anzumerken das der Index
|
|
|
- dieses Arrays der Name der Regel ist die in der Regeldeklaration verwendet wird, und welche
|
|
|
- von den Namen der Felder, die von der Regel geprüft werden, unterschiedlich sein kann.
|
|
|
+ Das Ergebnis der <code>getMessages()</code> Methode ist ein assoziatives Array, das
|
|
|
+ die Regelnamen einem Array von Fehlermeldungen, relativ zu diesen Regeln, zuordnet.
|
|
|
+ Es ist anzumerken das der Index dieses Arrays der Name der Regel ist die in der
|
|
|
+ Regeldeklaration verwendet wird, und welche von den Namen der Felder, die von der
|
|
|
+ Regel geprüft werden, unterschiedlich sein kann.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Die <code>getMessages()</code> Methode gibt eine Zusammenfassung der Arrays zurück die von
|
|
|
- <code>getInvalid()</code> und <code>getMissing()</code> retourniert werden. Diese Methoden geben
|
|
|
- Subsets der Nachrichten zurück, relativ zu den Prüffehlern, oder Felder die als benötigt deklariert
|
|
|
- wurden aber in der Eingabe fehlen.
|
|
|
+ Die <code>getMessages()</code> Methode gibt eine Zusammenfassung der Arrays zurück
|
|
|
+ die von <code>getInvalid()</code> und <code>getMissing()</code> retourniert werden.
|
|
|
+ Diese Methoden geben Subsets der Nachrichten zurück, relativ zu den Prüffehlern,
|
|
|
+ oder Felder die als benötigt deklariert wurden aber in der Eingabe fehlen.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Die <code>getErrors()</code> Methode gibt ein assoziatives Array zurück, in dem die Regelnamen einem
|
|
|
- Array von Fehler Identifizierern entsprechen. Fehler Identifizierer sind fixe Strings, um Gründe für
|
|
|
- eine fehlgeschlagene Prüfung, zu identifizieren, wobei Nachrichten selbst geändert werden können.
|
|
|
- Siehe <xref linkend="zend.validate.introduction.using" /> für mehr Informationen.
|
|
|
+ Die <code>getErrors()</code> Methode gibt ein assoziatives Array zurück, in dem die
|
|
|
+ Regelnamen einem Array von Fehler Identifizierern entsprechen. Fehler Identifizierer
|
|
|
+ sind fixe Strings, um Gründe für eine fehlgeschlagene Prüfung, zu identifizieren,
|
|
|
+ wobei Nachrichten selbst geändert werden können. Siehe <xref
|
|
|
+ linkend="zend.validate.introduction.using" /> für mehr Informationen.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Die Nachricht die von <code>getMissing()</code> zurückgegeben wird kann als Argument beim
|
|
|
- Zend_Filter_Input Konstruktor, oder durch verwenden der <code>setOptions()</code> Methode,
|
|
|
- spezifiziert werden.
|
|
|
+ Die Nachricht die von <code>getMissing()</code> zurückgegeben wird kann als Argument
|
|
|
+ beim Zend_Filter_Input Konstruktor, oder durch verwenden der
|
|
|
+ <code>setOptions()</code> Methode, spezifiziert werden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -364,9 +379,10 @@ $input->setOptions($options);
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Das Ergebnis der <code>getUnknown()</code> Methode ist ein assoziatives Array, in dem die Feldnamen
|
|
|
- den Feldwerten zugeordnet werden. Feldnamen werden in diesem Fall als Arrayschlüssel verwendet, statt
|
|
|
- als Regelnamen, weil keine Regel die Feld erwähnt die unbekannte Felder sind.
|
|
|
+ Das Ergebnis der <code>getUnknown()</code> Methode ist ein assoziatives Array, in
|
|
|
+ dem die Feldnamen den Feldwerten zugeordnet werden. Feldnamen werden in diesem Fall
|
|
|
+ als Arrayschlüssel verwendet, statt als Regelnamen, weil keine Regel die Feld
|
|
|
+ erwähnt die unbekannte Felder sind.
|
|
|
</para>
|
|
|
|
|
|
</sect3>
|
|
|
@@ -376,9 +392,10 @@ $input->setOptions($options);
|
|
|
<title>Gültige Felder bekommen</title>
|
|
|
|
|
|
<para>
|
|
|
- Alle Felder die entweder ungültig, fehlend oder unbekannt sind, werden als gültig angenommen. Man
|
|
|
- kann Werte für diese Felder erhalten indem ein magischer Accessor verwendet wird. Es gibt auch die
|
|
|
- nicht-magische Accessor Methoden <code>getEscaped()</code> und <code>getUnescaped()</code>.
|
|
|
+ Alle Felder die entweder ungültig, fehlend oder unbekannt sind, werden als gültig
|
|
|
+ angenommen. Man kann Werte für diese Felder erhalten indem ein magischer Accessor
|
|
|
+ verwendet wird. Es gibt auch die nicht-magische Accessor Methoden
|
|
|
+ <code>getEscaped()</code> und <code>getUnescaped()</code>.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -388,23 +405,25 @@ $m = $input->getUnescaped('month'); // nicht kommentieren
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Standardmäßig, wenn ein Wert empfangen wird, wird er mit Zend_Filter_HtmlEntities gefiltert. Das ist
|
|
|
- der Standard weil angenommen wird, das die am meisten übliche Verwendung, die Ausgabe von Werten von
|
|
|
- einem Feld in HTML ist. Der HtmlEntities Filter hilft ungewollten Ausgaben von Code vorzubeugen,
|
|
|
- welche zu Sicherheitsproblemen führen könnten.
|
|
|
+ Standardmäßig, wenn ein Wert empfangen wird, wird er mit Zend_Filter_HtmlEntities
|
|
|
+ gefiltert. Das ist der Standard weil angenommen wird, das die am meisten übliche
|
|
|
+ Verwendung, die Ausgabe von Werten von einem Feld in HTML ist. Der HtmlEntities
|
|
|
+ Filter hilft ungewollten Ausgaben von Code vorzubeugen, welche zu
|
|
|
+ Sicherheitsproblemen führen könnten.
|
|
|
</para>
|
|
|
|
|
|
<note>
|
|
|
<para>
|
|
|
- Wie oben gezeigt, kann man unkommentierte Werte erhalten undem die <code>getUnescaped()</code>
|
|
|
- Methode verwendet wird, aber man muß dafür Code schreiben um die Werte sicher zu verwendetn, und
|
|
|
- Sicherheitsprobleme, wie Verletzbarkeit für Seitenübergreifende Skript Attacken zu vermeiden.
|
|
|
+ Wie oben gezeigt, kann man unkommentierte Werte erhalten undem die
|
|
|
+ <code>getUnescaped()</code> Methode verwendet wird, aber man muß dafür Code
|
|
|
+ schreiben um die Werte sicher zu verwendetn, und Sicherheitsprobleme, wie
|
|
|
+ Verletzbarkeit für Seitenübergreifende Skript Attacken zu vermeiden.
|
|
|
</para>
|
|
|
</note>
|
|
|
|
|
|
<para>
|
|
|
- Es kann ein anderer Filter für das auskommentieren von Werten definiert werden, durch seine
|
|
|
- Spezifikation im Array der Optionen des Konstruktors:
|
|
|
+ Es kann ein anderer Filter für das auskommentieren von Werten definiert werden,
|
|
|
+ durch seine Spezifikation im Array der Optionen des Konstruktors:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -422,27 +441,30 @@ $input->setDefaultEscapeFilter(new Zend_Filter_StringTrim());
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Bei jeder Verwendung, kann der Kommentarfilter als String Basisname der Filterklasse, oder als
|
|
|
- Objektinstanz einer Filterklasse, spezifiziert werden. Der Kommentarfilter kann eine Instanz einer
|
|
|
- Filterkette, oder ein Objekt der Zend_Filter Klasse sein.
|
|
|
+ Bei jeder Verwendung, kann der Kommentarfilter als String Basisname der
|
|
|
+ Filterklasse, oder als Objektinstanz einer Filterklasse, spezifiziert werden. Der
|
|
|
+ Kommentarfilter kann eine Instanz einer Filterkette, oder ein Objekt der Zend_Filter
|
|
|
+ Klasse sein.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Filter die Ausgaben kommentieren sollen auf diesen Weg ausgeführt werden, um sicherzustellen das
|
|
|
- Sie nach der Prüfung ausgeführt werden. Andere Filter, die im Array der Filterregeln deklariert
|
|
|
- werden, werden bei den Eingabedaten angewendet bevor diese Daten geprüft werden. Wenn
|
|
|
- Kommentarfilter vor der Prüfung ausgeführt werden, würde der Prozess der Prüfung viel komplexer sein
|
|
|
- um sowohl kommentierte als auch unkommentierte Versionen der Daten anzubieten. Deswegen wird
|
|
|
- empfohlen, Filter die Ausgaben mit <code>setDefaultEscapeFilter()</code> kommentieren, nicht im
|
|
|
+ Filter die Ausgaben kommentieren sollen auf diesen Weg ausgeführt werden, um
|
|
|
+ sicherzustellen das Sie nach der Prüfung ausgeführt werden. Andere Filter, die im
|
|
|
+ Array der Filterregeln deklariert werden, werden bei den Eingabedaten angewendet
|
|
|
+ bevor diese Daten geprüft werden. Wenn Kommentarfilter vor der Prüfung ausgeführt
|
|
|
+ werden, würde der Prozess der Prüfung viel komplexer sein um sowohl kommentierte als
|
|
|
+ auch unkommentierte Versionen der Daten anzubieten. Deswegen wird empfohlen, Filter
|
|
|
+ die Ausgaben mit <code>setDefaultEscapeFilter()</code> kommentieren, nicht im
|
|
|
<code>$filters</code> Array zu deklarieren.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Es gibt nur eine <code>getEscaped()</code> Methode, und deswegen kann nur ein Filter für das
|
|
|
- kommentieren spezifiziert werden (trotzdem kann dieser Filter eine Filterkette sein). Wenn eine
|
|
|
- einzelne Instanz von Zend_Filter_Input benötigt wird, um kommentierte Ausgaben zu erhalten, und
|
|
|
- mehr als eine Filtermethode angewendet werden soll, sollte Zend_Filter_Input erweitert werden und
|
|
|
- neue Methoden in der Subklasse implementiert werden um Wert auf unterschiedlichen Wegen zu erhalten.
|
|
|
+ Es gibt nur eine <code>getEscaped()</code> Methode, und deswegen kann nur ein Filter
|
|
|
+ für das kommentieren spezifiziert werden (trotzdem kann dieser Filter eine
|
|
|
+ Filterkette sein). Wenn eine einzelne Instanz von Zend_Filter_Input benötigt wird,
|
|
|
+ um kommentierte Ausgaben zu erhalten, und mehr als eine Filtermethode angewendet
|
|
|
+ werden soll, sollte Zend_Filter_Input erweitert werden und neue Methoden in der
|
|
|
+ Subklasse implementiert werden um Wert auf unterschiedlichen Wegen zu erhalten.
|
|
|
</para>
|
|
|
|
|
|
</sect3>
|
|
|
@@ -454,10 +476,10 @@ $input->setDefaultEscapeFilter(new Zend_Filter_StringTrim());
|
|
|
<title>Metakommandos verwenden um Filter oder Prüfregeln zu kontrollieren</title>
|
|
|
|
|
|
<para>
|
|
|
- Zusätzlich zum deklarieren der Übereinstimmungen von Feldern zu Filtern oder Prüfer, können einige
|
|
|
- "Metakommandos" in der Array Deklaration spezifiziert werden um einige optionale Verhaltensweisen von
|
|
|
- Zend_Filter_Input zu kontrollieren. Metakommandos treten als String-indizierte Einträge in einem
|
|
|
- gegebenen Filter- oder Prüfarray Wert auf.
|
|
|
+ Zusätzlich zum deklarieren der Übereinstimmungen von Feldern zu Filtern oder Prüfer,
|
|
|
+ können einige "Metakommandos" in der Array Deklaration spezifiziert werden um einige
|
|
|
+ optionale Verhaltensweisen von Zend_Filter_Input zu kontrollieren. Metakommandos treten
|
|
|
+ als String-indizierte Einträge in einem gegebenen Filter- oder Prüfarray Wert auf.
|
|
|
</para>
|
|
|
|
|
|
<sect3 id="zend.filter.input.metacommands.fields">
|
|
|
@@ -465,13 +487,15 @@ $input->setDefaultEscapeFilter(new Zend_Filter_StringTrim());
|
|
|
<title>Das FIELDS Metakommando</title>
|
|
|
|
|
|
<para>
|
|
|
- Wenn der Name der Regel für einen Filter oder Prüfer anders lautet als das Feld in welchem er
|
|
|
- angewendet werden soll, kann der Feldname mit dem 'fields' Metakommando spezifiziert werden.
|
|
|
+ Wenn der Name der Regel für einen Filter oder Prüfer anders lautet als das Feld in
|
|
|
+ welchem er angewendet werden soll, kann der Feldname mit dem 'fields' Metakommando
|
|
|
+ spezifiziert werden.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Dieses Metakommando kann durch Verwendung der Klassenkonstanten <classname>Zend_Filter_Input::FIELDS</classname>
|
|
|
- statt der Angabe eines Strings spezifiziert werden.
|
|
|
+ Dieses Metakommando kann durch Verwendung der Klassenkonstanten
|
|
|
+ <classname>Zend_Filter_Input::FIELDS</classname> statt der Angabe eines Strings
|
|
|
+ spezifiziert werden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -484,26 +508,27 @@ $filters = array(
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Im obigen Beispiel wendet die Filterregel den 'digits' Filter am Eingabefeld, das 'mo' heißt, an.
|
|
|
- Der String 'month' wird einfach ein mnemonischer Schlüsselfür diese Filterregel; er wird nicht als
|
|
|
- Filtername verwendet wenn der Filter mit dem 'fields' Metakommando spezifiziert wird, aber er wird
|
|
|
- als Regelname verwendet.
|
|
|
+ Im obigen Beispiel wendet die Filterregel den 'digits' Filter am Eingabefeld, das
|
|
|
+ 'mo' heißt, an. Der String 'month' wird einfach ein mnemonischer Schlüsselfür diese
|
|
|
+ Filterregel; er wird nicht als Filtername verwendet wenn der Filter mit dem 'fields'
|
|
|
+ Metakommando spezifiziert wird, aber er wird als Regelname verwendet.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Der Standardwert des 'fields' Metakommandos ist der Index der aktuellen Regel. Im obigen Beispiel
|
|
|
- wird die Regel, wenn das 'fields' Metakommando nicht spezifiziert wird, auf das Eingabefeld das
|
|
|
- 'month' heißt, angewendet.
|
|
|
+ Der Standardwert des 'fields' Metakommandos ist der Index der aktuellen Regel. Im
|
|
|
+ obigen Beispiel wird die Regel, wenn das 'fields' Metakommando nicht spezifiziert
|
|
|
+ wird, auf das Eingabefeld das 'month' heißt, angewendet.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Eine weitere Verwendung des 'fields' Metakommandos ist es Felder für Filter oder Prüfer zu
|
|
|
- spezifizieren die mehrere Felder als Eingabe benötigen. Wenn das 'fields' Metakommando ein Array ist,
|
|
|
- ist das Argument des korrespondierenden Filters oder Prüfers ein Array mit den Werten dieser Felder.
|
|
|
- Zum Beispiel ist es für Benutzer üblich einen Passwort String in zwei Feldern zu spezifizieren, und
|
|
|
- diese müssen den selben String in beide Felder eingeben. Man kann zum Beispiel eine Prüfklasse
|
|
|
- implmentieren die ein Array Argument annimmt, und <code>true</code> zurückgibt wenn alle Werte im
|
|
|
- Array identisch zum jeweils anderen sind.
|
|
|
+ Eine weitere Verwendung des 'fields' Metakommandos ist es Felder für Filter oder
|
|
|
+ Prüfer zu spezifizieren die mehrere Felder als Eingabe benötigen. Wenn das 'fields'
|
|
|
+ Metakommando ein Array ist, ist das Argument des korrespondierenden Filters oder
|
|
|
+ Prüfers ein Array mit den Werten dieser Felder. Zum Beispiel ist es für Benutzer
|
|
|
+ üblich einen Passwort String in zwei Feldern zu spezifizieren, und diese müssen den
|
|
|
+ selben String in beide Felder eingeben. Man kann zum Beispiel eine Prüfklasse
|
|
|
+ implmentieren die ein Array Argument annimmt, und <code>true</code> zurückgibt wenn
|
|
|
+ alle Werte im Array identisch zum jeweils anderen sind.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -519,9 +544,9 @@ $validators = array(
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Wenn die Prüfung dieser Regel fehlschlägt wird der Schlüssel der Regel (<code>'password'</code>)
|
|
|
- im Rückgabewert von <code>getInvalid()</code> verwendet und nicht eine der benannten Felder im
|
|
|
- 'fields' Metakommando.
|
|
|
+ Wenn die Prüfung dieser Regel fehlschlägt wird der Schlüssel der Regel
|
|
|
+ (<code>'password'</code>) im Rückgabewert von <code>getInvalid()</code> verwendet
|
|
|
+ und nicht eine der benannten Felder im 'fields' Metakommando.
|
|
|
</para>
|
|
|
|
|
|
</sect3>
|
|
|
@@ -531,9 +556,9 @@ $validators = array(
|
|
|
<title>Das PRESENCE Metakommando</title>
|
|
|
|
|
|
<para>
|
|
|
- Jeder Eintrag im Prüfarray kann ein Metakommando haben das 'presence' heißt. Wenn der Wert dieses
|
|
|
- Metakommandos 'required' ist muß dieses Feld in den Eingabedaten existieren, andernfalls wird es
|
|
|
- als fehlendes Feld gemeldet.
|
|
|
+ Jeder Eintrag im Prüfarray kann ein Metakommando haben das 'presence' heißt. Wenn
|
|
|
+ der Wert dieses Metakommandos 'required' ist muß dieses Feld in den Eingabedaten
|
|
|
+ existieren, andernfalls wird es als fehlendes Feld gemeldet.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -561,21 +586,22 @@ $validators = array(
|
|
|
<title>Das DEFAULT_VALUE Metakommando</title>
|
|
|
|
|
|
<para>
|
|
|
- Wenn ein Feld, für das ein Wert mit dem 'default' Metakommando für diese Regel, in den Eigabedaten
|
|
|
- vorhanden ist, nimmt das Feld den Wert dieses Metakommandos.
|
|
|
+ Wenn ein Feld, für das ein Wert mit dem 'default' Metakommando für diese Regel, in
|
|
|
+ den Eigabedaten vorhanden ist, nimmt das Feld den Wert dieses Metakommandos.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Dieses Metakommando kann auch spezifiziert werden indem die Klassenkonstante
|
|
|
- <classname>Zend_Filter_Input::DEFAULT_VALUE</classname> statt einem String verwendet wird.
|
|
|
+ <classname>Zend_Filter_Input::DEFAULT_VALUE</classname> statt einem String verwendet
|
|
|
+ wird.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Der Standardwert wird dem Feld zugeordnet bevor irgendeiner der Prüfungen stattfindet. Der
|
|
|
- Standardwert wird dem Feld nur für die aktuelle Regel zugeordnet; wenn das selbe Weld in einer
|
|
|
- folgenden Regel referenziert wird, hat dieses Feld keinen Wert wenn diese Regel evaluiert wird.
|
|
|
- Deshalb können verschiedene Regeln auch verschiedene Standardwerte für ein gegebenes Feld
|
|
|
- deklarieren.
|
|
|
+ Der Standardwert wird dem Feld zugeordnet bevor irgendeiner der Prüfungen
|
|
|
+ stattfindet. Der Standardwert wird dem Feld nur für die aktuelle Regel zugeordnet;
|
|
|
+ wenn das selbe Weld in einer folgenden Regel referenziert wird, hat dieses Feld
|
|
|
+ keinen Wert wenn diese Regel evaluiert wird. Deshalb können verschiedene Regeln auch
|
|
|
+ verschiedene Standardwerte für ein gegebenes Feld deklarieren.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -594,12 +620,12 @@ echo $input->month; // gibt 1 aus
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Wenn eine Regel das <code>FIELDS</code> Metakommando verwendet um ein Array mit mehrfachen Feldern
|
|
|
- zu definieren, kann ein Array für das <code>DEFAULT_VALUE</code> Metakommando definiert werden
|
|
|
- und der Standard der korrespondierenden Schlüssel wird für alle fehlenden Felder verwendet.
|
|
|
- Wenn <code>FIELDS</code> mehrfache Felder definiert aber <code>DEFAULT_VALUE</code> nur ein
|
|
|
- skalarer Wert ist, dann wird dieser Standardwert als Wert für alle fehlenden Feldern im Array
|
|
|
- verwendet.
|
|
|
+ Wenn eine Regel das <code>FIELDS</code> Metakommando verwendet um ein Array mit
|
|
|
+ mehrfachen Feldern zu definieren, kann ein Array für das <code>DEFAULT_VALUE</code>
|
|
|
+ Metakommando definiert werden und der Standard der korrespondierenden Schlüssel wird
|
|
|
+ für alle fehlenden Felder verwendet. Wenn <code>FIELDS</code> mehrfache Felder
|
|
|
+ definiert aber <code>DEFAULT_VALUE</code> nur ein skalarer Wert ist, dann wird
|
|
|
+ dieser Standardwert als Wert für alle fehlenden Feldern im Array verwendet.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -613,21 +639,24 @@ echo $input->month; // gibt 1 aus
|
|
|
<title>Das ALLOW_EMPTY Metakommando</title>
|
|
|
|
|
|
<para>
|
|
|
- Standardmäßig, wenn ein Feld in den Eingabedaten existiert, wird Ihm der Prüfer zugeordnet selbst
|
|
|
- wenn der Wert des Feldes ein leerer String ist (<code>''</code>). Das kann zu einem Fehler in der
|
|
|
- Prüfung führen. Zum Beispiel, wenn ein Prüfer auf Ziffern prüft und es keine gibt weil ein leerer
|
|
|
- String keine Zeichen hat, weil der Prüfer dann die Daten als fehlerhaft meldet.
|
|
|
+ Standardmäßig, wenn ein Feld in den Eingabedaten existiert, wird Ihm der Prüfer
|
|
|
+ zugeordnet selbst wenn der Wert des Feldes ein leerer String ist (<code>''</code>).
|
|
|
+ Das kann zu einem Fehler in der Prüfung führen. Zum Beispiel, wenn ein Prüfer auf
|
|
|
+ Ziffern prüft und es keine gibt weil ein leerer String keine Zeichen hat, weil der
|
|
|
+ Prüfer dann die Daten als fehlerhaft meldet.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Wenn, in eigenen Fällen, ein leerer String als gültig angenommen werden soll, kann das
|
|
|
- Metakommando 'allowEmpty' auf <code>true</code> gesetzt werden. Dann passieren die Eingabedaten die
|
|
|
- Prüfung wenn sie in den Eingabedaten vorhanden sind, aber der Wert ein leerer String ist.
|
|
|
+ Wenn, in eigenen Fällen, ein leerer String als gültig angenommen werden soll, kann
|
|
|
+ das Metakommando 'allowEmpty' auf <code>true</code> gesetzt werden. Dann passieren
|
|
|
+ die Eingabedaten die Prüfung wenn sie in den Eingabedaten vorhanden sind, aber der
|
|
|
+ Wert ein leerer String ist.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Dieses Metakommando kann spezifiziert werden indem die Klassenkonstante
|
|
|
- <classname>Zend_Filter_Input::ALLOW_EMPTY</classname> statt einem String verwendet wird.
|
|
|
+ <classname>Zend_Filter_Input::ALLOW_EMPTY</classname> statt einem String verwendet
|
|
|
+ wird.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -645,11 +674,12 @@ $validators = array(
|
|
|
|
|
|
<para>
|
|
|
Im unüblichen Fall das eine Prüfregel mit keinem Prüfer definiert wird, aber das
|
|
|
- 'allowEmpty' Metakommando <code>false</code> ist (das bedeutet, das das Feld als ungültig angenommen
|
|
|
- wird wenn es leer ist), gibt Zend_Filter_Input eine Standard Fehlermeldung zurück die mit
|
|
|
- <code>getMessages()</code> empfangen werden kann. Diese Meldung kann spezifiziert werden indem die
|
|
|
- 'notEmptyMessage' als Argument für den Zend_Filter_Input Kontruktor verwendet wird oder indem die
|
|
|
- <code>setOptions()</code> Methode verwendet wird.
|
|
|
+ 'allowEmpty' Metakommando <code>false</code> ist (das bedeutet, das das Feld als
|
|
|
+ ungültig angenommen wird wenn es leer ist), gibt Zend_Filter_Input eine Standard
|
|
|
+ Fehlermeldung zurück die mit <code>getMessages()</code> empfangen werden kann. Diese
|
|
|
+ Meldung kann spezifiziert werden indem die 'notEmptyMessage' als Argument für den
|
|
|
+ Zend_Filter_Input Kontruktor verwendet wird oder indem die <code>setOptions()</code>
|
|
|
+ Methode verwendet wird.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -672,21 +702,22 @@ $input->setOptions($options);
|
|
|
<title>Das BREAK_CHAIN Metakommando</title>
|
|
|
|
|
|
<para>
|
|
|
- Standardmäßig, wenn eine Regel mehr als einen Prüfer hat werden alle Prüfer auf die Eingabe
|
|
|
- angewendet, und die resultierende Nachricht enthält alle Fehlermeldungen die durch die Eingabe
|
|
|
- verursacht wurden.
|
|
|
+ Standardmäßig, wenn eine Regel mehr als einen Prüfer hat werden alle Prüfer auf die
|
|
|
+ Eingabe angewendet, und die resultierende Nachricht enthält alle Fehlermeldungen die
|
|
|
+ durch die Eingabe verursacht wurden.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Alternativ, wenn der Wert des 'breakChainOnFailure' Metakommandos <code>true</code> ist, terminiert
|
|
|
- die Prüfkette nachdem der erste Prüfer fehlschlägt. Die Eingabedaten werden nicht gegen nachfolgende
|
|
|
- Prüfer in der Kette geprüft. Sie können also weitere Fehlschläge verursachen selbst wenn der eine,
|
|
|
- der gemeldet wurde, korrigiert wird.
|
|
|
+ Alternativ, wenn der Wert des 'breakChainOnFailure' Metakommandos <code>true</code>
|
|
|
+ ist, terminiert die Prüfkette nachdem der erste Prüfer fehlschlägt. Die Eingabedaten
|
|
|
+ werden nicht gegen nachfolgende Prüfer in der Kette geprüft. Sie können also weitere
|
|
|
+ Fehlschläge verursachen selbst wenn der eine, der gemeldet wurde, korrigiert wird.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Dieses Metakommando kann spezifiziert werden indem die Klassenkonstante
|
|
|
- <classname>Zend_Filter_Input::BREAK_CHAIN</classname> statt einem String verwendet wird.
|
|
|
+ <classname>Zend_Filter_Input::BREAK_CHAIN</classname> statt einem String verwendet
|
|
|
+ wird.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -706,13 +737,14 @@ $input = new Zend_Filter_Input(null, $validators);
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Die Klasse der Prüfketten, Zend_Validate, ist flexibler was das Durchbrechen von ausgeführten
|
|
|
- Ketten betrifft als Zend_Filter_Input. Mit der ersten Klasse, kann eine Option gesetzt werden um
|
|
|
- die Kette, für jeden Prüfer in der Kette, bei Fehlern unabhängig von jedem anderen Prüfer
|
|
|
- abzubrechen. Mit der anderen Klasse wird der definierte Wert des 'breakChainOnFailure'
|
|
|
- Metakommandos für eine Regel, einheitlich für alle Regeln in der Regel, angewendet. Wenn
|
|
|
- eine flexiblere Verwendung benötigt wird, sollte die Prüfkette selbst erstellt werden und diese als
|
|
|
- Objekt in der Definition der Prüfregel verwendet werden:
|
|
|
+ Die Klasse der Prüfketten, Zend_Validate, ist flexibler was das Durchbrechen von
|
|
|
+ ausgeführten Ketten betrifft als Zend_Filter_Input. Mit der ersten Klasse, kann eine
|
|
|
+ Option gesetzt werden um die Kette, für jeden Prüfer in der Kette, bei Fehlern
|
|
|
+ unabhängig von jedem anderen Prüfer abzubrechen. Mit der anderen Klasse wird der
|
|
|
+ definierte Wert des 'breakChainOnFailure' Metakommandos für eine Regel, einheitlich
|
|
|
+ für alle Regeln in der Regel, angewendet. Wenn eine flexiblere Verwendung benötigt
|
|
|
+ wird, sollte die Prüfkette selbst erstellt werden und diese als Objekt in der
|
|
|
+ Definition der Prüfregel verwendet werden:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -737,20 +769,21 @@ $input = new Zend_Filter_Input(null, $validators);
|
|
|
<title>Das MESSAGES Metakommando</title>
|
|
|
|
|
|
<para>
|
|
|
- Man kann Fehlermeldungen für jeden Prüfer in einer Regel spezifizieren indem das 'messages'
|
|
|
- Metakommando verwendet wird. Der Wert dieses Metakommandos variiert, je nachdem ob man mehrere
|
|
|
- Prüfer in der Regel hat, oder ob man die Nachricht für eine spezielles Fehlerereignis in einem
|
|
|
- angegebenen Prüfer setzen will.
|
|
|
+ Man kann Fehlermeldungen für jeden Prüfer in einer Regel spezifizieren indem das
|
|
|
+ 'messages' Metakommando verwendet wird. Der Wert dieses Metakommandos variiert, je
|
|
|
+ nachdem ob man mehrere Prüfer in der Regel hat, oder ob man die Nachricht für eine
|
|
|
+ spezielles Fehlerereignis in einem angegebenen Prüfer setzen will.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Dieses Metakommando kann spezifiziert werden indem die Klassenkonstante
|
|
|
- <classname>Zend_Filter_Input::MESSAGES</classname> statt einem String verwendet wird.
|
|
|
+ <classname>Zend_Filter_Input::MESSAGES</classname> statt einem String verwendet
|
|
|
+ wird.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Anbei ist ein einfaches Beispiel wie eine Standard fehlermeldung für einen einzelnen Prüfer
|
|
|
- gesetzt wird.
|
|
|
+ Anbei ist ein einfaches Beispiel wie eine Standard fehlermeldung für einen einzelnen
|
|
|
+ Prüfer gesetzt wird.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -763,16 +796,17 @@ $validators = array(
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Wenn mehrere Prüfer vorhanden sind für die eine Fehlermeldung gesetzt werden soll, sollte ein
|
|
|
- Array für dem Wert des 'messages' Metakommandos verwendet werden.
|
|
|
+ Wenn mehrere Prüfer vorhanden sind für die eine Fehlermeldung gesetzt werden soll,
|
|
|
+ sollte ein Array für dem Wert des 'messages' Metakommandos verwendet werden.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Jedes Element dieses Array wird dem Prüfer an der gleichen Indexposition zugeordnet. Man kann
|
|
|
- eine Nachricht für die Prüfung an der Position <emphasis>n</emphasis> spezifizieren indem der
|
|
|
- Wert von <emphasis>n</emphasis> als Array Index verwendet wird. So kann einigen Prüfern erlaubt
|
|
|
- werden Ihre eigenen Standardnachrichten zu verwenden, wärend die Nachricht für einen nachfolgenden
|
|
|
- Prüfer in der Kette gesetzt wird.
|
|
|
+ Jedes Element dieses Array wird dem Prüfer an der gleichen Indexposition zugeordnet.
|
|
|
+ Man kann eine Nachricht für die Prüfung an der Position <emphasis>n</emphasis>
|
|
|
+ spezifizieren indem der Wert von <emphasis>n</emphasis> als Array Index verwendet
|
|
|
+ wird. So kann einigen Prüfern erlaubt werden Ihre eigenen Standardnachrichten zu
|
|
|
+ verwenden, wärend die Nachricht für einen nachfolgenden Prüfer in der Kette gesetzt
|
|
|
+ wird.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -790,11 +824,12 @@ $validators = array(
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Wenn einer der Prüfer mehrere Fehlermeldungen besitzt, werden diese durch Nachrichten Schlüssel
|
|
|
- identifiziert. Es gibt verschiedene Schlüssel in jeder Prüfklasse, welche als Identifizierer
|
|
|
- für Fehlernachrichten fungieren, die die entsprechende Prüfklasse erstellen kann. Jede Prüfklasse
|
|
|
- definiert Konstanten für Ihre Nachrichtenschlüssel. Diese Schlüssel können im 'messages'
|
|
|
- Metakommando verwendet werden indem Sie als assoziatives Array übergeben werden statt als String.
|
|
|
+ Wenn einer der Prüfer mehrere Fehlermeldungen besitzt, werden diese durch
|
|
|
+ Nachrichten Schlüssel identifiziert. Es gibt verschiedene Schlüssel in jeder
|
|
|
+ Prüfklasse, welche als Identifizierer für Fehlernachrichten fungieren, die die
|
|
|
+ entsprechende Prüfklasse erstellen kann. Jede Prüfklasse definiert Konstanten für
|
|
|
+ Ihre Nachrichtenschlüssel. Diese Schlüssel können im 'messages' Metakommando
|
|
|
+ verwendet werden indem Sie als assoziatives Array übergeben werden statt als String.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -817,9 +852,9 @@ $validators = array(
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Es sollte für jede Prüfklasse in die Dokumentation gesehen werden, um zu wissen ob diese mehrere
|
|
|
- Fehlernachrichten hat, welche Schlüssel die Nachrichten haben und welche Token im
|
|
|
- Nachrichtentemplate verwendet werden können.
|
|
|
+ Es sollte für jede Prüfklasse in die Dokumentation gesehen werden, um zu wissen ob
|
|
|
+ diese mehrere Fehlernachrichten hat, welche Schlüssel die Nachrichten haben und
|
|
|
+ welche Token im Nachrichtentemplate verwendet werden können.
|
|
|
</para>
|
|
|
|
|
|
</sect3>
|
|
|
@@ -829,10 +864,11 @@ $validators = array(
|
|
|
<title>Verwenden von Optionen um Metakommandos für alle Regeln zu setzen</title>
|
|
|
|
|
|
<para>
|
|
|
- Der Standardwert für die 'allowEmpty', 'breakChainOnFailure', und 'presence' Metakommandos kann für
|
|
|
- alle Regeln gesetzt werden indem das <code>$options</code> Argument für den Konstruktor von
|
|
|
- Zend_Filter_Input verwendet wird. Das erlaubt das Setzen des Standardwertes für alle Regeln, ohne
|
|
|
- das das Metakommando für jede Regel gesetzt werden muß.
|
|
|
+ Der Standardwert für die 'allowEmpty', 'breakChainOnFailure', und 'presence'
|
|
|
+ Metakommandos kann für alle Regeln gesetzt werden indem das <code>$options</code>
|
|
|
+ Argument für den Konstruktor von Zend_Filter_Input verwendet wird. Das erlaubt das
|
|
|
+ Setzen des Standardwertes für alle Regeln, ohne das das Metakommando für jede Regel
|
|
|
+ gesetzt werden muß.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -852,7 +888,8 @@ $input = new Zend_Filter_Input($filters, $validators, $data, $options);
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Die 'fields', 'messages', und 'default' Metakommandos können nicht mit dieser Technik gesetzt werden.
|
|
|
+ Die 'fields', 'messages', und 'default' Metakommandos können nicht mit dieser
|
|
|
+ Technik gesetzt werden.
|
|
|
</para>
|
|
|
|
|
|
</sect3>
|
|
|
@@ -864,16 +901,18 @@ $input = new Zend_Filter_Input($filters, $validators, $data, $options);
|
|
|
<title>Namensräume für Filterklassen hinzufügen</title>
|
|
|
|
|
|
<para>
|
|
|
- Standardmäßig, wenn ein Filter oder Prüfer als String deklariert wird, sucht Zend_Filter_Input nach der
|
|
|
- korrespondierenden Klasse unter dem Zend_Filter oder Zend_Validate Namensraum. Ein Filter der zum
|
|
|
- Beispiel nach dem String 'digits' benannt ist wird in der Klasse Zend_Filter_Digits gefunden.
|
|
|
+ Standardmäßig, wenn ein Filter oder Prüfer als String deklariert wird, sucht
|
|
|
+ Zend_Filter_Input nach der korrespondierenden Klasse unter dem Zend_Filter oder
|
|
|
+ Zend_Validate Namensraum. Ein Filter der zum Beispiel nach dem String 'digits' benannt
|
|
|
+ ist wird in der Klasse Zend_Filter_Digits gefunden.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Wenn eigene Filter oder Prüfklassen geschrieben werden, oder Filter oder Prüfer von Drittanbietern
|
|
|
- verwendet werden, können diese Klassen in einem anderen Namensraum als Zend_Filter oder Zend_Validate
|
|
|
- existieren. Zend_Filter_Input kann mitgeteilt werden, das in zusätzlichen Namensräumen gesucht werden
|
|
|
- soll. Namensräume können in den Konstruktor Optionen spezifiziert werden:
|
|
|
+ Wenn eigene Filter oder Prüfklassen geschrieben werden, oder Filter oder Prüfer von
|
|
|
+ Drittanbietern verwendet werden, können diese Klassen in einem anderen Namensraum als
|
|
|
+ Zend_Filter oder Zend_Validate existieren. Zend_Filter_Input kann mitgeteilt werden, das
|
|
|
+ in zusätzlichen Namensräumen gesucht werden soll. Namensräume können in den Konstruktor
|
|
|
+ Optionen spezifiziert werden:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -884,8 +923,8 @@ $input = new Zend_Filter_Input($filters, $validators, $data, $options);
|
|
|
|
|
|
<para>
|
|
|
Alternatic kann die <code>addValidatorPrefixPath($prefix, $path)</code> oder die
|
|
|
- <code>addFilterPrefixPath($prefix, $path)</code> Methoden verwendet werden, welche direkt
|
|
|
- auf den Plugin Lader verweisen der von Zend_Filter_Input verwendet wird:
|
|
|
+ <code>addFilterPrefixPath($prefix, $path)</code> Methoden verwendet werden, welche
|
|
|
+ direkt auf den Plugin Lader verweisen der von Zend_Filter_Input verwendet wird:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -904,28 +943,32 @@ $input->addFilterPrefixPath('Foo_Namespace', 'Foo/Namespace');
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Zend_Filter und Zend_Validate können als Namensraum nicht entfernt werden, es können nur Namensräume
|
|
|
- hinzugefügt werden. Benutzerdefinierte Namensräume werden zuerst durchsucht, Zend Namensräume werden
|
|
|
- zuletzt durchsucht.
|
|
|
+ Zend_Filter und Zend_Validate können als Namensraum nicht entfernt werden, es können nur
|
|
|
+ Namensräume hinzugefügt werden. Benutzerdefinierte Namensräume werden zuerst durchsucht,
|
|
|
+ Zend Namensräume werden zuletzt durchsucht.
|
|
|
</para>
|
|
|
|
|
|
<note>
|
|
|
<para>
|
|
|
- Ab der Version 1.5 sollte die Funktion <code>addNamespace($namespace)</code> nicht mehr
|
|
|
- verwendet werden und wurde durch den Plugin Lader getauscht. Und <code>addFilterPrefixPath</code>
|
|
|
- sowie <code>addValidatorPrefixPath</code> wurden hinzugefügt. Auch die Konstante
|
|
|
- <classname>Zend_Filter_Input::INPUT_NAMESPACE</classname> sollte jetzt nicht mehr verwendet werden.
|
|
|
- Die Konstanten <classname>Zend_Filter_Input::VALIDATOR_NAMESPACE</classname> und
|
|
|
- <classname>Zend_Filter_Input::FILTER_NAMESPACE</classname> sind seit den Releases nach 1.7.0 vorhanden.
|
|
|
+ Ab der Version 1.5 sollte die Funktion <code>addNamespace($namespace)</code> nicht
|
|
|
+ mehr verwendet werden und wurde durch den Plugin Lader getauscht. Und
|
|
|
+ <code>addFilterPrefixPath</code> sowie <code>addValidatorPrefixPath</code> wurden
|
|
|
+ hinzugefügt. Auch die Konstante
|
|
|
+ <classname>Zend_Filter_Input::INPUT_NAMESPACE</classname> sollte jetzt nicht mehr
|
|
|
+ verwendet werden. Die Konstanten
|
|
|
+ <classname>Zend_Filter_Input::VALIDATOR_NAMESPACE</classname> und
|
|
|
+ <classname>Zend_Filter_Input::FILTER_NAMESPACE</classname> sind seit den Releases
|
|
|
+ nach 1.7.0 vorhanden.
|
|
|
</para>
|
|
|
</note>
|
|
|
|
|
|
<note>
|
|
|
<para>
|
|
|
- Seit Version 1.0.4 wurde <classname>Zend_Filter_Input::NAMESPACE</classname>, der den Wert
|
|
|
- <code>namespace</code> hatte, auf <classname>Zend_Filter_Input::INPUT_NAMESPACE</classname>,
|
|
|
- mit dem Wert <code>inputNamespace</code> geändert, um der Reservierung des
|
|
|
- Schlüsselwortes <code>namespace</code> ab PHP 5.3 gerecht zu werden.
|
|
|
+ Seit Version 1.0.4 wurde <classname>Zend_Filter_Input::NAMESPACE</classname>, der
|
|
|
+ den Wert <code>namespace</code> hatte, auf
|
|
|
+ <classname>Zend_Filter_Input::INPUT_NAMESPACE</classname>, mit dem Wert
|
|
|
+ <code>inputNamespace</code> geändert, um der Reservierung des Schlüsselwortes
|
|
|
+ <code>namespace</code> ab PHP 5.3 gerecht zu werden.
|
|
|
</para>
|
|
|
</note>
|
|
|
|