Migration von vorhergehenden Versionen
Wärend die externe API von Zend_Http_Client durch
den kompletten 1.x Baum vom Zend Framework konsistent geblieben ist, wurden einige
Änderungen in der internen Struktur von Zend_Http_Client und den
abhängigen Klassen durchgeführt.
Diese Änderungen sollten keinen Effekt bei Code haben der
Zend_Http_Client verwendet - kann aber Effekte bei
PHP Klassen zeigen welche diese Erweitern oder Überladen. Wenn die eigene
Anwendung Zend_Http_Client erweitert, ist es stark zu empfehlen die
folgenden Änderungen anzusehen bevor der Zend Framework hochgerüstet wird.
Migration von 1.8 oder älter zu 1.9 oder neuer
Änderungen in der internen Speicherung der Information von hochgeladenen Dateien
In Version 1.9 vom Zend Framework gibt es eine Ändernug wie
Zend_Http_Client Informationen über hochgeladenen Dateien
intern speichert, bei denen die
Zend_Http_Client::setFileUpload() Methode verwendet wird.
Diese Änderung wurde durchgeführt um es zu erlauben mehrere Dateien mit dem
gleichen Formularnamen, als Array von Dateien, hochzuladen. Weitere Informationen
über dieses Problem können in diesem
Fehlerreport gefunden werden.
Interne Speicherung der Informationen von hochgeladenen Dateien
setFileUpload('file1.txt',
'userfile[]',
'some raw data',
'text/plain');
$client->setFileUpload('file2.txt',
'userfile[]',
'some other data',
'application/octet-stream');
// In Zend Framework 1.8 oder älter, ist der Wert der geschützten
// Variable $client->files:
// $client->files = array(
// 'userfile[]' => array('file2.txt',
'application/octet-stream',
'some other data')
// );
// In Zend Framework 1.9 oder neuer, ist der Wert von $client->files:
// $client->files = array(
// array(
// 'formname' => 'userfile[]',
// 'filename' => 'file1.txt,
// 'ctype' => 'text/plain',
// 'data' => 'some raw data'
// ),
// array(
// 'formname' => 'userfile[]',
// 'filename' => 'file2.txt',
// 'formname' => 'application/octet-stream',
// 'formname' => 'some other data'
// )
// );
]]>
Wie man sieht gestattet diese Änderung die Verwendung des gleichen Namens für das
Formularelement mit mehr als einer Datei - trotzdem führt dies zu einer subtilen
Änderung der Rückwärtskompatibilität und sollte erwähnt werden.
Zend_Http_Client::_getParametersRecursive() sollte nicht mehr eingesetzt werden
Beginnend mit Version 1.9, wird die geschützte Methode
_getParametersRecursive() nicht mehr von
Zend_Http_Client verwendet und ist abgelehnt (deprecated).
Ihre Verwendung führt zu einer E_NOTICE Nachricht die von PHP
kommt.
Wenn man Zend_Http_Client erweitert und diese Methode
aufrufr, sollte man sehen das man stattdessen die statische Methode
Zend_Http_Client::_flattenParametersArray() verwendet.
Nochmals, da _getParametersRecursive eine geschützte Methode
ist, sind nur Benutzer betroffen die Zend_Http_Client
erweitert haben.