migration-110.xml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 18833 -->
  4. <sect1 id="migration.110">
  5. <title>Zend Framework 1.10</title>
  6. <para>
  7. 以前のバージョンから Zend Framework 1.10 またはそれ以降に更新する際は、
  8. 下記の移行上の注意点に注意すべきです。
  9. </para>
  10. <sect2 id="migration.110.zend.file.transfer">
  11. <title>Zend_File_Transfer</title>
  12. <sect3 id="migration.110.zend.file.transfer.count">
  13. <title>Count 検証</title>
  14. <para>
  15. リリース 1.10 より前は <classname>MimeType</classname> バリデータが誤った命名を使っていました。
  16. 一貫性のために、下記の定数が変更されました。
  17. </para>
  18. <table id="migration.110.zend.file.transfer.count.table">
  19. <title>変更された検証メッセージ</title>
  20. <tgroup cols="4">
  21. <thead>
  22. <row>
  23. <entry>旧</entry>
  24. <entry>新</entry>
  25. <entry>値</entry>
  26. </row>
  27. </thead>
  28. <tbody>
  29. <row>
  30. <entry><constant>TOO_MUCH</constant></entry>
  31. <entry><constant>TOO_MANY</constant></entry>
  32. <entry>
  33. Too many files, maximum '%max%' are allowed but '%count%' are given
  34. </entry>
  35. </row>
  36. <row>
  37. <entry><constant>TOO_LESS</constant></entry>
  38. <entry><constant>TOO_FEW</constant></entry>
  39. <entry>
  40. Too few files, minimum '%min%' are expected but '%count%' are given
  41. </entry>
  42. </row>
  43. </tbody>
  44. </tgroup>
  45. </table>
  46. <para>
  47. コード内でこれらのメッセージを翻訳している場合、新しい定数を使います。
  48. 利点として、正しいつづりを得るために、本来の文字列を翻訳する必要はもうありません。
  49. </para>
  50. </sect3>
  51. </sect2>
  52. <sect2 id="migration.110.zend.validate">
  53. <title>Zend_Validate</title>
  54. <sect3 id="migration.110.zend.validate.selfwritten">
  55. <title>書かれたバリデータ自身</title>
  56. <para>
  57. かかれたバリデータ自身の内部からエラーを返すよう設定するときは、
  58. <methodname>_error()</methodname>メソッドを呼ばなくてはいけません。
  59. Zend Framework 1.10 以前では、パラメータを与えなくてもこのメソッドを呼び出せました。
  60. そこで、最初に見つかったメッセージテンプレートを使いました。
  61. </para>
  62. <para>
  63. この振る舞いには、一つ以上の異なるメッセージを返すバリデータを使うときに問題があります。
  64. また、既存のバリデータを拡張すると、予期しない結果を得ることもあります。
  65. このせいで、あなたが期待した通りではないメッセージにユーザーが遭遇することにもなりました。
  66. </para>
  67. <programlisting language="php"><![CDATA[
  68. My_Validator extends Zend_Validate_Abstract
  69. {
  70. public isValid($value)
  71. {
  72. ...
  73. $this->_error(); // 異なるOS間での予期されない結果
  74. ...
  75. }
  76. }
  77. ]]></programlisting>
  78. <para>
  79. この問題を防ぐために、<methodname>_error()</methodname>メソッドにパラメータを与えないで呼び出すことは、
  80. もはやできなくなります。
  81. </para>
  82. <programlisting language="php"><![CDATA[
  83. My_Validator extends Zend_Validate_Abstract
  84. {
  85. public isValid($value)
  86. {
  87. ...
  88. $this->_error(self::MY_ERROR); // 定義されたエラー、予期されない結果ではありません
  89. ...
  90. }
  91. }
  92. ]]></programlisting>
  93. </sect3>
  94. <sect3 id="migration.110.zend.validate.datevalidator">
  95. <title>日付バリデータの簡略化</title>
  96. <para>
  97. Zend Framework 1.10 以前では、同一の2つのメッセージが、
  98. 日付バリデータ内でスローされていました。
  99. これらは、<constant>NOT_YYYY_MM_DD</constant>と<constant>FALSEFORMAT</constant>でした。
  100. Zend Framework 1.10 現在では、
  101. 与えられた日付が設定されたフォーマットに一致しない場合、
  102. <constant>FALSEFORMAT</constant>メッセージだけが返されます。
  103. </para>
  104. </sect3>
  105. <sect3 id="migration.110.zend.validate.barcodevalidator">
  106. <title>Alpha、Alnum及びBarcodeバリデータの修正</title>
  107. <para>
  108. Zend Framework 1.10 以前では、バーコード・アダプタ2種類と、
  109. Alpha 及び Alnum バリデータ内のメッセージが同一でした。
  110. このため、カスタムのメッセージ、翻訳、
  111. またはこれらのバリデータの複数のインスタンスを使うときに問題がありました。
  112. </para>
  113. <para>
  114. Zend Framework 1.10 では、定数値は、一意であるように変更されました。
  115. マニュアルで提案されたように定数を使ったときには、変更がありません。
  116. しかし、コードで定数の内容を使ったときには、
  117. それらを変更しなければなりません。
  118. 下記の表では変更された値を示します。
  119. </para>
  120. <table id="migration.110.zend.validate.barcodevalidator.table">
  121. <title>利用可能なバリデータのメッセージ</title>
  122. <tgroup cols="3">
  123. <thead>
  124. <row>
  125. <entry>バリデータ</entry>
  126. <entry>定数</entry>
  127. <entry>値</entry>
  128. </row>
  129. </thead>
  130. <tbody>
  131. <row>
  132. <entry><classname>Alnum</classname></entry>
  133. <entry><constant>STRING_EMPTY</constant></entry>
  134. <entry>alnumStringEmpty</entry>
  135. </row>
  136. <row>
  137. <entry><classname>Alpha</classname></entry>
  138. <entry><constant>STRING_EMPTY</constant></entry>
  139. <entry>alphaStringEmpty</entry>
  140. </row>
  141. <row>
  142. <entry><classname>Barcode_Ean13</classname></entry>
  143. <entry><constant>INVALID</constant></entry>
  144. <entry>ean13Invalid</entry>
  145. </row>
  146. <row>
  147. <entry><classname>Barcode_Ean13</classname></entry>
  148. <entry><constant>INVALID_LENGTH</constant></entry>
  149. <entry>ean13InvalidLength</entry>
  150. </row>
  151. <row>
  152. <entry><classname>Barcode_UpcA</classname></entry>
  153. <entry><constant>INVALID</constant></entry>
  154. <entry>upcaInvalid</entry>
  155. </row>
  156. <row>
  157. <entry><classname>Barcode_UpcA</classname></entry>
  158. <entry><constant>INVALID_LENGTH</constant></entry>
  159. <entry>upcaInvalidLength</entry>
  160. </row>
  161. <row>
  162. <entry><classname>Digits</classname></entry>
  163. <entry><constant>STRING_EMPTY</constant></entry>
  164. <entry>digitsStringEmpty</entry>
  165. </row>
  166. </tbody>
  167. </tgroup>
  168. </table>
  169. </sect3>
  170. </sect2>
  171. </sect1>
  172. <!--
  173. vim:se ts=4 sw=4 et:
  174. -->