Migrating from previous versions
While the external API of Zend_Http_Client has remained
consistent throughout the 1.x branch of Zend Framework, some changes were introduced
to the internal structure of Zend_Http_Client and its related
classes.
These changes should have no affect on code using Zend_Http_Client
- but may have an effect on PHP classes overloading or extending it. If your application
subclasses Zend_Http_Client, it is highly recommended to review
the following changes before upgrading Zend Framework.
Migrating from 1.8 or older to 1.9 or newer
Changes to internal uploaded file information storage
In version 1.9 of Zend Framework, there has been a change in the way
Zend_Http_Client internally stores information about
files to be uploaded, set using the Zend_Http_Client::setFileUpload()
method.
This change was introduced in order to allow multiple files to be uploaded
with the same form name, as an array of files. More information about this issue
can be found in this bug report.
Internal storage of uploaded file information
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 or older, the value of
// the protected member $client->files is:
// $client->files = array(
// 'userfile[]' => array('file2.txt',
'application/octet-stream',
'some other data')
// );
// In Zend Framework 1.9 or newer, the value of $client->files is:
// $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'
// )
// );
]]>
As you can see, this change permits the usage of the same form element name with
more than one file - however, it introduces a subtle backwards-compatibility change
and as such should be noted.
Deprecation of Zend_Http_Client::_getParametersRecursive()
Starting from version 1.9, the protected method _getParametersRecursive()
is no longer used by Zend_Http_Client and is deprecated.
Using it will cause an E_NOTICE message to be emitted by PHP.
If you subclass Zend_Http_Client and call this method, you
should look into using the Zend_Http_Client::_flattenParametersArray()
static method instead.
Again, since this _getParametersRecursive is a protected method,
this change will only affect users who subclass Zend_Http_Client.