Zend_Locale-Migration.xml 5.1 KB

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