Zend_Http_Client-Migration.xml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 16960 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.http.client.migration">
  5. <title>Migration von vorhergehenden Versionen</title>
  6. <para>
  7. Wärend die externe API von <classname>Zend_Http_Client</classname> durch den kompletten
  8. 1.x Baum vom Zend Framework konsistent geblieben ist, wurden einige Änderungen in der
  9. internen Struktur von <classname>Zend_Http_Client</classname> und den abhängigen
  10. Klassen durchgeführt.
  11. </para>
  12. <para>
  13. Diese Änderungen sollten keinen Effekt bei Code haben der
  14. <classname>Zend_Http_Client</classname> verwendet - kann aber Effekte bei PHP Klassen
  15. zeigen welche diese Erweitern oder Überladen. Wenn die eigene Anwendung
  16. <classname>Zend_Http_Client</classname> erweitert, ist es stark zu empfehlen die folgenden
  17. Änderungen anzusehen bevor der Zend Framework hochgerüstet wird.
  18. </para>
  19. <sect2 id="zend.http.client.migration.tozf19">
  20. <title>Migrating from 1.8 or older to 1.9 or newer</title>
  21. <sect3 id="zend.http.client.migration.tozf19.fileuploadsarray">
  22. <title>
  23. Änderungen in der internen Speicherung der Information von hochgeladenen Dateien
  24. </title>
  25. <para>
  26. In Version 1.9 vom Zend Framework gibt es eine Ändernug wie
  27. <classname>Zend_Http_Client</classname> Informationen über hochgeladenen Dateien
  28. intern speichert, bei denen die
  29. <classname>Zend_Http_Client::setFileUpload()</classname> Methode verwendet wird.
  30. </para>
  31. <para>
  32. Diese Änderung wurde durchgeführt um es zu erlauben mehrere Dateien mit dem
  33. gleichen Formularnamen, als Array von Dateien, hochzuladen. Weitere Informationen
  34. über dieses Problem können in <ulink
  35. url="http://framework.zend.com/issues/browse/ZF-5744">diesem
  36. Fehlerreport</ulink> gefunden werden.
  37. </para>
  38. <example id="zend.http.client.migration.tozf19.fileuploadsarray.example">
  39. <title>Interne Speicherung der Informationen von hochgeladenen Dateien</title>
  40. <programlisting language="php"><![CDATA[
  41. // Zwei Dateien mit dem gleichen Namen des Formularelements als Array hochladen
  42. $client = new Zend_Http_Client();
  43. $client->setFileUpload('file1.txt', 'userfile[]', 'some raw data', 'text/plain');
  44. $client->setFileUpload('file2.txt', 'userfile[]', 'some other data', 'application/octet-stream');
  45. // In Zend Framework 1.8 oder älter, ist der Wert der geschützten Variable $client->files:
  46. // $client->files = array(
  47. // 'userfile[]' => array('file2.txt', 'application/octet-stream', 'some other data')
  48. // );
  49. // In Zend Framework 1.9 oder neuer, ist der Wert von $client->files:
  50. // $client->files = array(
  51. // array(
  52. // 'formname' => 'userfile[]',
  53. // 'filename' => 'file1.txt,
  54. // 'ctype' => 'text/plain',
  55. // 'data' => 'some raw data'
  56. // ),
  57. // array(
  58. // 'formname' => 'userfile[]',
  59. // 'filename' => 'file2.txt',
  60. // 'formname' => 'application/octet-stream',
  61. // 'formname' => 'some other data'
  62. // )
  63. // );
  64. ]]></programlisting>
  65. </example>
  66. <para>
  67. Wie man sieht gestattet diese Änderung die Verwendung des gleichen Namens für das
  68. Formularelement mit mehr als einer Datei - trotzdem führt dies zu einer subtilen
  69. Änderung der Rückwärtskompatibilität und sollte erwähnt werden.
  70. </para>
  71. </sect3>
  72. <sect3 id="zend.http.client.migration.tozf19.getparamsrecursize">
  73. <title>
  74. Zend_Http_Client::_getParametersRecursive() sollte nicht mehr eingesetzt werden
  75. </title>
  76. <para>
  77. Beginnend mit Version 1.9, wird die geschützte Methode
  78. <classname>_getParametersRecursive()</classname> nicht mehr von
  79. <classname>Zend_Http_Client</classname> verwendet und ist abgelehnt (deprecated).
  80. Ihre Verwendung führt zu einer E_NOTICE Nachricht die von PHP kommt.
  81. </para>
  82. <para>
  83. Wenn man <classname>Zend_Http_Client</classname> erweitert und diese Methode
  84. aufrufr, sollte man sehen das man stattdessen die statische Methode
  85. <classname>Zend_Http_Client::_flattenParametersArray()</classname> verwendet.
  86. </para>
  87. <para>
  88. Nochmals, da <classname>_getParametersRecursive</classname> eine geschützte Methode
  89. ist, sind nur Benutzer betroffen die <classname>Zend_Http_Client</classname>
  90. erweitert haben.
  91. </para>
  92. </sect3>
  93. </sect2>
  94. </sect1>