Zend_Validate-Migration.xml 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 17471 -->
  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. </sect2>
  54. </sect1>