Zend_Validate-Migration.xml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 17908 -->
  4. <sect1 id="zend.validate.migration">
  5. <title>以前のバージョンからの移行</title>
  6. <para>
  7. <classname>Zend_Validate</classname>の<acronym>API</acronym>は、時折変わってきました。
  8. 以前のバージョンで<classname>Zend_Validate</classname>とそのサブコンポーネントを使い始めたなら、
  9. 新しい<acronym>API</acronym>を使うようスクリプトを移行するために、下記のガイドラインに従ってください。
  10. </para>
  11. <sect2 id="zend.validate.migration.fromoneninetooneten">
  12. <title>1.9から1.10以降への移行</title>
  13. <sect3 id="zend.validate.migration.fromoneninetooneten.selfwritten">
  14. <title>書かれたアダプタ自身</title>
  15. <para>
  16. かかれたバリデータ自身の内部からエラーを返すよう設定するときは、
  17. <methodname>_error()</methodname>メソッドを呼ばなくてはいけません。
  18. Zend Framework 1.10 以前では、パラメータを与えなくてもこのメソッドを呼び出せました。
  19. そこで、最初に見つかったメッセージテンプレートを使いました。
  20. </para>
  21. <para>
  22. この振る舞いには、一つ以上の異なるメッセージを返すバリデータを使うときに問題があります。
  23. また、既存のバリデータを拡張すると、予期しない結果を得ることもあります。
  24. このせいで、あなたが期待した通りではないメッセージにユーザーが遭遇することにもなりました。
  25. </para>
  26. <programlisting language="php"><![CDATA[
  27. My_Validator extends Zend_Validate_Abstract
  28. {
  29. public isValid($value)
  30. {
  31. ...
  32. $this->_error(); // 異なるOS間での予期されない結果
  33. ...
  34. }
  35. }
  36. ]]></programlisting>
  37. <para>
  38. この問題を防ぐために、<methodname>_error()</methodname>メソッドにパラメータを与えないで呼び出すことは、
  39. もはやできなくなります。
  40. </para>
  41. <programlisting language="php"><![CDATA[
  42. My_Validator extends Zend_Validate_Abstract
  43. {
  44. public isValid($value)
  45. {
  46. ...
  47. $this->_error(self::MY_ERROR); // 定義されたエラー、予期されない結果ではありません
  48. ...
  49. }
  50. }
  51. ]]></programlisting>
  52. </sect3>
  53. <sect3 id="zend.validate.migration.fromoneninetooneten.datevalidator">
  54. <title>日付バリデータの簡略化</title>
  55. <para>
  56. Zend Framework 1.10 以前では、同一の2つのメッセージが、
  57. 日付バリデータ内でスローされていました。
  58. これらは、<constant>NOT_YYYY_MM_DD</constant>と<constant>FALSEFORMAT</constant>でした。
  59. Zend Framework 1.10 現在では、
  60. 与えられた日付が設定されたフォーマットに一致しない場合、
  61. <constant>FALSEFORMAT</constant>メッセージだけが返されます。
  62. </para>
  63. </sect3>
  64. <sect3 id="zend.validate.migration.fromoneninetooneten.barcodevalidator">
  65. <title>Alpha、Alnum及びBarcodeバリデータの修正</title>
  66. <para>
  67. Zend Framework 1.10 以前では、バーコード・アダプタ2種類と、
  68. Alpha 及び Alnum バリデータ内のメッセージが同一でした。
  69. このため、カスタムのメッセージ、翻訳、
  70. またはこれらのバリデータの複数のインスタンスを使うときに問題がありました。
  71. </para>
  72. <para>
  73. Zend Framework 1.10 では、定数値は、一意であるように変更されました。
  74. マニュアルで提案されたように定数を使ったときには、変更がありません。
  75. しかし、コードで定数の内容を使ったときには、
  76. それらを変更しなければなりません。
  77. 下記の表では変更された値を示します。
  78. </para>
  79. <table id="zend.validate.migration.fromoneninetooneten.barcodevalidator.table">
  80. <title>利用可能なバリデータのメッセージ</title>
  81. <tgroup cols="3">
  82. <thead>
  83. <row>
  84. <entry>バリデータ</entry>
  85. <entry>定数</entry>
  86. <entry>値</entry>
  87. </row>
  88. </thead>
  89. <tbody>
  90. <row>
  91. <entry>Alnum</entry>
  92. <entry><constant>STRING_EMPTY</constant></entry>
  93. <entry>alnumStringEmpty</entry>
  94. </row>
  95. <row>
  96. <entry>Alpha</entry>
  97. <entry><constant>STRING_EMPTY</constant></entry>
  98. <entry>alphaStringEmpty</entry>
  99. </row>
  100. <row>
  101. <entry>Barcode_Ean13</entry>
  102. <entry><constant>INVALID</constant></entry>
  103. <entry>ean13Invalid</entry>
  104. </row>
  105. <row>
  106. <entry>Barcode_Ean13</entry>
  107. <entry><constant>INVALID_LENGTH</constant></entry>
  108. <entry>ean13InvalidLength</entry>
  109. </row>
  110. <row>
  111. <entry>Barcode_UpcA</entry>
  112. <entry><constant>INVALID</constant></entry>
  113. <entry>upcaInvalid</entry>
  114. </row>
  115. <row>
  116. <entry>Barcode_UpcA</entry>
  117. <entry><constant>INVALID_LENGTH</constant></entry>
  118. <entry>upcaInvalidLength</entry>
  119. </row>
  120. <row>
  121. <entry>Digits</entry>
  122. <entry><constant>STRING_EMPTY</constant></entry>
  123. <entry>digitsStringEmpty</entry>
  124. </row>
  125. </tbody>
  126. </tgroup>
  127. </table>
  128. </sect3>
  129. </sect2>
  130. </sect1>