2
0

Zend_Validate-PostCode.xml 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.validate.set.post_code">
  5. <title>PostCode</title>
  6. <para>
  7. <classname>Zend_Validate_PostCode</classname> erlaubt es zu eruieren ob ein angegebener
  8. Wert eine gültige Postleitzahl ist. Postleitzahlen sind spezifisch für Städte und in einigen
  9. Gebietsschemata auch als <acronym>ZIP</acronym> Codes bezeichnet.
  10. </para>
  11. <para>
  12. <classname>Zend_Validate_PostCode</classname> kennt mehr als 160 unterschiedliche Formate
  13. für Postleitzahlen. Um das richtige Format auszuwählen gibt es 2 Wege. Man kann entweder
  14. ein voll qualifiziertes Gebietsschema verwenden, oder ein eigenes Format manuall setzen.
  15. </para>
  16. <para>
  17. Die Verwendung eines Gebietsschemas ist bequemer da Zend Framework bereits die
  18. entsprechenden Formate für Postleitzahlen für jedes Gebietsschema kennt; aber muss man
  19. ein voll qualifiziertes Gebietsschema verwenden (eines das eine Region spezifiziert) damit
  20. es funktioniert. Das Gebietsschema "de" zum Beispiel ist zwar ein Gebietsschema, kann aber
  21. nicht mit <classname>Zend_Validate_PostCode</classname> verwendet werden da es keine
  22. Region enthält; "de_AT" andererseits würde ein gültiges Gebietsschema sein da es den
  23. Region Code spezifiziert ("AT", für Österreich).
  24. </para>
  25. <programlisting language="php"><![CDATA[
  26. $validator = new Zend_Validate_PostCode('de_AT');
  27. ]]></programlisting>
  28. <para>
  29. Wenn man das Gebietsschema nicht selbst setzt, dann verwendet
  30. <classname>Zend_Validate_PostCode</classname> das anwendungsweit gesetzte Gebietsschema,
  31. oder wenn keines vorhanden ist, das Gebietsschema welches von
  32. <classname>Zend_Locale</classname> zurückgegeben wird.
  33. </para>
  34. <programlisting language="php"><![CDATA[
  35. // Anwendungsweites Gebietsschema in der Bootstrap
  36. $locale = new Zend_Locale('de_AT');
  37. Zend_Registry::set('Zend_Locale', $locale);
  38. $validator = new Zend_Validate_PostCode();
  39. ]]></programlisting>
  40. <para>
  41. Man kann das Gebietsschema auch im Nachhinein ändern, indem man
  42. <methodname>setLocale()</methodname> aufruft. Und natürlich kann man das aktuelle
  43. Gebietsschema erhalten indem <methodname>getLocale()</methodname> aufgerufen wird.
  44. </para>
  45. <programlisting language="php"><![CDATA[
  46. $validator = new Zend_Validate_PostCode('de_AT');
  47. $validator->setLocale('en_GB');
  48. ]]></programlisting>
  49. <para>
  50. Postleitzahlen Formate selbst sind einfache Regular Expression Strings. Wenn das
  51. internationale Postleitzahlen Format, welches durch das Setzen des Gebietsschemas verwendet
  52. wird, den eigenen Bedüfnissen nicht entspricht, dann kann man ein Format auch manuell setzen
  53. indem <methodname>setFormat()</methodname> aufgerufen wird.
  54. </para>
  55. <programlisting language="php"><![CDATA[
  56. $validator = new Zend_Validate_PostCode('de_AT');
  57. $validator->setFormat('AT-\d{5}');
  58. ]]></programlisting>
  59. <note>
  60. <title>Konventionen für selbst definierte Formate</title>
  61. <para>
  62. Wenn selbst definierte Formate verwendet werden sollten die Start-
  63. (<command>'/^'</command>) und Endetags (<command>'$/'</command>) nicht angegeben werden.
  64. Sie werden automatisch hinzugefügt.
  65. </para>
  66. <para>
  67. Man sollte darauf achtgeben das Postleitzahlen Werte immer auf einer strikte Art
  68. geprüft werden. Das bedeutet das Sie alleinstehend geschrieben werden müssen, ohne
  69. zusätzliche Zeichen, wenn diese nicht durch das Format abgedeckt werden.
  70. </para>
  71. </note>
  72. <sect3 id="zend.validate.set.post_code.constructor">
  73. <title>Optionen des Constructors</title>
  74. <para>
  75. Grundsätzlich kann man dem Contructor von <classname>Zend_Validate_PostCode</classname>
  76. entweder ein <classname>Zend_Locale</classname> Objekt, oder einen String der ein voll
  77. qualifiziertes Gebietsschema repräsentiert, angeben.
  78. </para>
  79. <programlisting language="php"><![CDATA[
  80. $validator = new Zend_Validate_PostCode('de_AT');
  81. $validator = new Zend_Validate_PostCode($locale);
  82. ]]></programlisting>
  83. <para>
  84. Zusätzlich kann man dem Contructor entweder ein Array oder ein
  85. <classname>Zend_Config</classname> Objekt übergeben. Wenn man das tut, muss man
  86. entweder den Schlüssel "locale" oder "format" verwenden; diese werden verwendet um die
  87. betreffenden Werte im Prüfobjekt zu setzen.
  88. </para>
  89. <programlisting language="php"><![CDATA[
  90. $validator = new Zend_Validate_PostCode(array(
  91. 'locale' => 'de_AT',
  92. 'format' => 'AT_\d+'
  93. ));
  94. ]]></programlisting>
  95. </sect3>
  96. <sect3 id="zend.validate.set.post_code.options">
  97. <title>Unterstützte Optionen für Zend_Validate_PostCode</title>
  98. <para>
  99. Die folgenden Optionen werden für <classname>Zend_Validate_PostCode</classname>
  100. unterstützt:
  101. </para>
  102. <itemizedlist>
  103. <listitem>
  104. <para>
  105. <emphasis><property>format</property></emphasis>: Setzt das Postleitzahl-Format
  106. welches für die Prüfung der Eingabe verwendet werden soll.
  107. </para>
  108. </listitem>
  109. <listitem>
  110. <para>
  111. <emphasis><property>locale</property></emphasis>: Setzt ein Gebietsschema von
  112. dem die Postleitzahl genommen wird.
  113. </para>
  114. </listitem>
  115. </itemizedlist>
  116. </sect3>
  117. </sect2>