migration-110.xml 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 19457 -->
  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.translate">
  53. <title>Zend_Translate</title>
  54. <sect3 id="migration.110.zend.translate.xliff">
  55. <title>Xliff アダプタ</title>
  56. <para>
  57. 過去には Xliff アダプタはソースの文字列をメッセージ Id として使いました。
  58. Xliff 標準に沿って、翻訳単位 Id が使われるべきです。
  59. この振る舞いは Zend Framework 1.10 で修正されました。
  60. 今では既定では翻訳単位 Id はメッセージId として使われます。
  61. </para>
  62. <para>
  63. しかし、 <property>useId</property> オプションを <constant>FALSE</constant> に設定することにより、
  64. 正しくなくて古い振る舞いをまだ得られます。
  65. </para>
  66. <programlisting language="php"><![CDATA[
  67. $trans = new Zend_Translate('xliff', '/path/to/source', $locale, array('useId' => false));
  68. ]]></programlisting>
  69. </sect3>
  70. </sect2>
  71. <sect2 id="migration.110.zend.validate">
  72. <title>Zend_Validate</title>
  73. <sect3 id="migration.110.zend.validate.selfwritten">
  74. <title>書かれたバリデータ自身</title>
  75. <para>
  76. かかれたバリデータ自身の内部からエラーを返すよう設定するときは、
  77. <methodname>_error()</methodname>メソッドを呼ばなくてはいけません。
  78. Zend Framework 1.10 以前では、パラメータを与えなくてもこのメソッドを呼び出せました。
  79. そこで、最初に見つかったメッセージテンプレートを使いました。
  80. </para>
  81. <para>
  82. この振る舞いには、一つ以上の異なるメッセージを返すバリデータを使うときに問題があります。
  83. また、既存のバリデータを拡張すると、予期しない結果を得ることもあります。
  84. このせいで、あなたが期待した通りではないメッセージにユーザーが遭遇することにもなりました。
  85. </para>
  86. <programlisting language="php"><![CDATA[
  87. My_Validator extends Zend_Validate_Abstract
  88. {
  89. public isValid($value)
  90. {
  91. ...
  92. $this->_error(); // 異なるOS間での予期されない結果
  93. ...
  94. }
  95. }
  96. ]]></programlisting>
  97. <para>
  98. この問題を防ぐために、<methodname>_error()</methodname>メソッドにパラメータを与えないで呼び出すことは、
  99. もはやできなくなります。
  100. </para>
  101. <programlisting language="php"><![CDATA[
  102. My_Validator extends Zend_Validate_Abstract
  103. {
  104. public isValid($value)
  105. {
  106. ...
  107. $this->_error(self::MY_ERROR); // 定義されたエラー、予期されない結果ではありません
  108. ...
  109. }
  110. }
  111. ]]></programlisting>
  112. </sect3>
  113. <sect3 id="migration.110.zend.validate.datevalidator">
  114. <title>日付バリデータの簡略化</title>
  115. <para>
  116. Zend Framework 1.10 以前では、同一の2つのメッセージが、
  117. 日付バリデータ内でスローされていました。
  118. これらは、<constant>NOT_YYYY_MM_DD</constant>と<constant>FALSEFORMAT</constant>でした。
  119. Zend Framework 1.10 現在では、
  120. 与えられた日付が設定されたフォーマットに一致しない場合、
  121. <constant>FALSEFORMAT</constant>メッセージだけが返されます。
  122. </para>
  123. </sect3>
  124. <sect3 id="migration.110.zend.validate.barcodevalidator">
  125. <title>Alpha、Alnum及びBarcodeバリデータの修正</title>
  126. <para>
  127. Zend Framework 1.10 以前では、バーコード・アダプタ2種類と、
  128. Alpha 及び Alnum バリデータ内のメッセージが同一でした。
  129. このため、カスタムのメッセージ、翻訳、
  130. またはこれらのバリデータの複数のインスタンスを使うときに問題がありました。
  131. </para>
  132. <para>
  133. Zend Framework 1.10 では、定数値は、一意であるように変更されました。
  134. マニュアルで提案されたように定数を使ったときには、変更がありません。
  135. しかし、コードで定数の内容を使ったときには、
  136. それらを変更しなければなりません。
  137. 下記の表では変更された値を示します。
  138. </para>
  139. <table id="migration.110.zend.validate.barcodevalidator.table">
  140. <title>利用可能なバリデータのメッセージ</title>
  141. <tgroup cols="3">
  142. <thead>
  143. <row>
  144. <entry>バリデータ</entry>
  145. <entry>定数</entry>
  146. <entry>値</entry>
  147. </row>
  148. </thead>
  149. <tbody>
  150. <row>
  151. <entry><classname>Alnum</classname></entry>
  152. <entry><constant>STRING_EMPTY</constant></entry>
  153. <entry>alnumStringEmpty</entry>
  154. </row>
  155. <row>
  156. <entry><classname>Alpha</classname></entry>
  157. <entry><constant>STRING_EMPTY</constant></entry>
  158. <entry>alphaStringEmpty</entry>
  159. </row>
  160. <row>
  161. <entry><classname>Barcode_Ean13</classname></entry>
  162. <entry><constant>INVALID</constant></entry>
  163. <entry>ean13Invalid</entry>
  164. </row>
  165. <row>
  166. <entry><classname>Barcode_Ean13</classname></entry>
  167. <entry><constant>INVALID_LENGTH</constant></entry>
  168. <entry>ean13InvalidLength</entry>
  169. </row>
  170. <row>
  171. <entry><classname>Barcode_UpcA</classname></entry>
  172. <entry><constant>INVALID</constant></entry>
  173. <entry>upcaInvalid</entry>
  174. </row>
  175. <row>
  176. <entry><classname>Barcode_UpcA</classname></entry>
  177. <entry><constant>INVALID_LENGTH</constant></entry>
  178. <entry>upcaInvalidLength</entry>
  179. </row>
  180. <row>
  181. <entry><classname>Digits</classname></entry>
  182. <entry><constant>STRING_EMPTY</constant></entry>
  183. <entry>digitsStringEmpty</entry>
  184. </row>
  185. </tbody>
  186. </tgroup>
  187. </table>
  188. </sect3>
  189. </sect2>
  190. </sect1>
  191. <!--
  192. vim:se ts=4 sw=4 et:
  193. -->