Zend_Locale-Migration.xml 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15617 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.locale.migration">
  5. <title>Migrieren von vorhergehenden Versionen</title>
  6. <para>
  7. Die API von <classname>Zend_Locale</classname> wurde von Zeit zu Zeit verändert. Wenn man
  8. begonnen hat <classname>Zend_Locale</classname> und seine Unterkomponenten in früheren
  9. Versionen dann sollte man den unteren Richtlinien folgen um die Skripte so zu migrieren das
  10. sie die neue API verwenden.
  11. </para>
  12. <sect2 id="zend.locale.migration.fromonesixtooneseven">
  13. <title>Migrieren von 1.6 oder 1.7 zu neueren</title>
  14. <sect3 id="zend.locale.migration.fromonesixtooneseven.islocale">
  15. <title>Änderungen bei der Verwendung von isLocale()</title>
  16. <para>
  17. Bezugnehmend auf den Codingstandard mußte isLocale() so geändert werden das es ein
  18. Boolean zurückgibt. In vorhergehenden Releases wurde im Erfolgsfall ein String
  19. zurückgegeben. Für das Release 1.7 wurde ein Kompatibilitätsmodus hinzugefügt der es
  20. erlaubt das alte Verhalten, das ein String zurückgegeben wird, zu verwenden, aber
  21. das triggert auch eine User Warning die darauf hinweist das man auf das neue
  22. Verhalten wechseln sollte. Das Rerouting welches das alte Verhalten von isLocale()
  23. durchgeführt hätte ist nicht länger notwendig, da alle I18N Komponenten jetzt das
  24. Rerouting selbst durchführen.
  25. </para>
  26. <para>
  27. Um die Skripte auf die neue API zu migrieren muß die Methode einfach wie anbei
  28. gezeigt verwendet werden.
  29. </para>
  30. <example id="zend.locale.migration.fromonesixtooneseven.example">
  31. <title>Wie man isLocale() von 1.6 nach 1.7 ändern muß</title>
  32. <programlisting language="php"><![CDATA[
  33. // Beispiel für 1.6
  34. if ($locale = Zend_Locale::isLocale($locale)) {
  35. // mach was
  36. }
  37. // Selbes Beispiel für 1.7
  38. // Man sollte den Kompatibilitätsmodus ändern um User Warnings zu verhindern
  39. // Aber man kann das in der Bootstrap tun
  40. Zend_Locale::$compatibilityMode = false;
  41. if (Zend_Locale::isLocale($locale)) {
  42. }
  43. ]]></programlisting>
  44. <para>
  45. Es ist zu beachten das man den zweiten Parameter verwendet kann um zu sehen ob
  46. das Gebietsschema richtig ist ohne das ein Rerouting durchgeführt wird.
  47. </para>
  48. <programlisting language="php"><![CDATA[
  49. // Beispiel für 1.6
  50. if ($locale = Zend_Locale::isLocale($locale, false)) {
  51. // mach was
  52. }
  53. // Selbes Beispiel für 1.7
  54. // Man sollte den Kompatibilitätsmodus ändern um User Warnings zu verhindern
  55. // Aber man kann das in der Bootstrap tun
  56. Zend_Locale::$compatibilityMode = false;
  57. if (Zend_Locale::isLocale($locale, false)) {
  58. if (Zend_Locale::isLocale($locale, true)) {
  59. // gar kein Gebietsschema
  60. }
  61. // Original String ist kein Gebietsschema, kann aber Reroutet werden
  62. }
  63. ]]></programlisting>
  64. </example>
  65. </sect3>
  66. <sect3 id="zend.locale.migration.fromonesixtooneseven.getdefault">
  67. <title>Änderungen bei der Verwendung von getDefault()</title>
  68. <para>
  69. Die Bedeutung der getDefault() Methode wurde verändert durch den Fakt das
  70. Framework-weite Gebietsschemata integriert wurden welche mit setDefault() gesetzt
  71. werden können. Deswegen gibe es nicht mehr die Kette der Gebietsschemata zurück
  72. sondern nur die gesetzten Framework-weiten Gebietsschemata.
  73. </para>
  74. <para>
  75. Um die eigenen Skripte auf die neue API zu migrieren, muß einfach die Methode wie
  76. unten gezeigt verwendet werden.
  77. </para>
  78. <example id="zend.locale.migration.fromonesixtooneseven.getdefault.example">
  79. <title>Wie man getDefault() von 1.6 auf 1.7 ändert</title>
  80. <programlisting language="php"><![CDATA[
  81. // Beispiel für 1.6
  82. $locales = $locale->getDefault(Zend_Locale::BROWSER);
  83. // Selbes Beispiel für 1.7
  84. // Man sollte den Compatibility Mode setzen um User Notices zu verhindern
  85. // Das kann in der Bootstrap Datei getan werden
  86. Zend_Locale::$compatibilityMode = false;
  87. $locale = Zend_Locale::getOrder(Zend_Locale::BROWSER);
  88. ]]></programlisting>
  89. <para>
  90. Es ist zu beachten das der zweite Parameter der alten getDefault()
  91. Implementation nicht mehr vorhanden ist, aber die zurückgegebenen Werte die
  92. gleichen sind.
  93. </para>
  94. </example>
  95. <note>
  96. <para>
  97. Standardmäßig ist das alte Verhalten noch immer aktiv, wirft aber eine User
  98. Notice. Wenn man den eigenen Code zum neuen Verhalten geändert hat sollte man
  99. auch den Compatibility Mode auf false setzen damit keine Notices mehr geworfen
  100. werden.
  101. </para>
  102. </note>
  103. </sect3>
  104. </sect2>
  105. </sect1>