| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.validate.set.post_code">
- <title>PostCode</title>
- <para>
- <classname>Zend_Validate_PostCode</classname> erlaubt es zu eruieren ob ein angegebener
- Wert eine gültige Postleitzahl ist. Postleitzahlen sind spezifisch für Städte und in einigen
- Gebietsschemata auch als <acronym>ZIP</acronym> Codes bezeichnet.
- </para>
- <para>
- <classname>Zend_Validate_PostCode</classname> kennt mehr als 160 unterschiedliche Formate
- für Postleitzahlen. Um das richtige Format auszuwählen gibt es 2 Wege. Man kann entweder
- ein voll qualifiziertes Gebietsschema verwenden, oder ein eigenes Format manuall setzen.
- </para>
- <para>
- Die Verwendung eines Gebietsschemas ist bequemer da Zend Framework bereits die
- entsprechenden Formate für Postleitzahlen für jedes Gebietsschema kennt; aber muss man
- ein voll qualifiziertes Gebietsschema verwenden (eines das eine Region spezifiziert) damit
- es funktioniert. Das Gebietsschema "de" zum Beispiel ist zwar ein Gebietsschema, kann aber
- nicht mit <classname>Zend_Validate_PostCode</classname> verwendet werden da es keine
- Region enthält; "de_AT" andererseits würde ein gültiges Gebietsschema sein da es den
- Region Code spezifiziert ("AT", für Österreich).
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_PostCode('de_AT');
- ]]></programlisting>
- <para>
- Wenn man das Gebietsschema nicht selbst setzt, dann verwendet
- <classname>Zend_Validate_PostCode</classname> das anwendungsweit gesetzte Gebietsschema,
- oder wenn keines vorhanden ist, das Gebietsschema welches von
- <classname>Zend_Locale</classname> zurückgegeben wird.
- </para>
- <programlisting language="php"><![CDATA[
- // Anwendungsweites Gebietsschema in der Bootstrap
- $locale = new Zend_Locale('de_AT');
- Zend_Registry::set('Zend_Locale', $locale);
- $validator = new Zend_Validate_PostCode();
- ]]></programlisting>
- <para>
- Man kann das Gebietsschema auch im Nachhinein ändern, indem man
- <methodname>setLocale()</methodname> aufruft. Und natürlich kann man das aktuelle
- Gebietsschema erhalten indem <methodname>getLocale()</methodname> aufgerufen wird.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_PostCode('de_AT');
- $validator->setLocale('en_GB');
- ]]></programlisting>
- <para>
- Postleitzahlen Formate selbst sind einfache Regular Expression Strings. Wenn das
- internationale Postleitzahlen Format, welches durch das Setzen des Gebietsschemas verwendet
- wird, den eigenen Bedüfnissen nicht entspricht, dann kann man ein Format auch manuell setzen
- indem <methodname>setFormat()</methodname> aufgerufen wird.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_PostCode('de_AT');
- $validator->setFormat('AT-\d{5}');
- ]]></programlisting>
- <note>
- <title>Konventionen für selbst definierte Formate</title>
- <para>
- Wenn selbst definierte Formate verwendet werden sollten die Start-
- (<command>'/^'</command>) und Endetags (<command>'$/'</command>) nicht angegeben werden.
- Sie werden automatisch hinzugefügt.
- </para>
- <para>
- Man sollte darauf achtgeben das Postleitzahlen Werte immer auf einer strikte Art
- geprüft werden. Das bedeutet das Sie alleinstehend geschrieben werden müssen, ohne
- zusätzliche Zeichen, wenn diese nicht durch das Format abgedeckt werden.
- </para>
- </note>
- <sect3 id="zend.validate.set.post_code.constructor">
- <title>Optionen des Constructors</title>
- <para>
- Grundsätzlich kann man dem Contructor von <classname>Zend_Validate_PostCode</classname>
- entweder ein <classname>Zend_Locale</classname> Objekt, oder einen String der ein voll
- qualifiziertes Gebietsschema repräsentiert, angeben.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_PostCode('de_AT');
- $validator = new Zend_Validate_PostCode($locale);
- ]]></programlisting>
- <para>
- Zusätzlich kann man dem Contructor entweder ein Array oder ein
- <classname>Zend_Config</classname> Objekt übergeben. Wenn man das tut, muss man
- entweder den Schlüssel "locale" oder "format" verwenden; diese werden verwendet um die
- betreffenden Werte im Prüfobjekt zu setzen.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_PostCode(array(
- 'locale' => 'de_AT',
- 'format' => 'AT_\d+'
- ));
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.validate.set.post_code.options">
- <title>Unterstützte Optionen für Zend_Validate_PostCode</title>
- <para>
- Die folgenden Optionen werden für <classname>Zend_Validate_PostCode</classname>
- unterstützt:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>format</property></emphasis>: Setzt das Postleitzahl-Format
- welches für die Prüfung der Eingabe verwendet werden soll.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>locale</property></emphasis>: Setzt ein Gebietsschema von
- dem die Postleitzahl genommen wird.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
|