|
|
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.
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.
Example #1 Interne Speicherung der Informationen von hochgeladenen Dateien
// Zwei Dateien mit dem gleichen Namen des Formularelements als Array hochladen
$client = new Zend_Http_Client();
$client->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.
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.
|
|
Copyright © 2005-2011 Zend Technologies Inc (compiled by mikaelkael with ZFDocumentor - SVN 18616).

