<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<sect1 id="zend.http.client.migration">

    <title>Migrer depuis les versions précédentes</title>

    <para>
        Alors que l'API externe de <classname>Zend_Http_Client</classname> n'a pas changé sur la branche
        1.x de Zend Framework, des changements ont été opérés dans la structure interne de
        <classname>Zend_Http_Client</classname>. 
    </para>
    
    <para>
        Ces changements ne devraient pas avoir de conséquence si vous utilisiez directement
        <classname>Zend_Http_Client</classname>, mais des boulversements peuvent apparaitre dans le cas
        où vous dériviez l'objet par surcharge. Voyez ainsi ce chapitre.
    </para>

    <sect2 id="zend.http.client.migration.tozf19">
        <title>Migrer depuis 1.8 ou avant, vers 1.9 ou après</title>
        <sect3 id="zend.http.client.migration.tozf19.fileuploadsarray">
            <title>Changement dans le stockage interne des fichiers d'upload</title>

            <para>
                Dans la version 1.9 de Zend Framework, il y a eu un changement dans la manière dont
                <classname>Zend_Http_Client</classname> stocke en interne les informations concernant les
                fichiers ayant été uploadés, affectés grâce à <classname>Zend_Http_Client::setFileUpload()</classname> 
            </para>
            
            <para>
                Ce changement a été mis en place de manière à permettre l'envoi de plusieurs fichiers
                avec le même nom dans le formulaire, en tant que tableau de fichiers. Plus d'informations à
                ce sujet peuvent être trouvées dans ce
                <ulink url="http://framework.zend.com/issues/browse/ZF-5744">rapport de bug</ulink>.
            </para>

            <example id="zend.http.client.migration.tozf19.fileuploadsarray.example">
                <title>Stockage interne des informations sur les fichiers uploadés</title>
                
                <programlisting language="php"><![CDATA[
// Uploade 2 fichiers avec le même nom d'élément de formulaire, en tant que tableau
$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');

// Dans Zend Framework <=1.8, la valeur de l'attribut protégé $client->files est:
// $client->files = array(
//     'userfile[]' => array('file2.txt', 'application/octet-stream', 'some other data')
// );

// Dans Zend Framework >=1.9, la valeur de $client->files est:
// $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'
//     )
// );
]]></programlisting>
            </example>
            
            <para>
                Comme vous le voyez, ce changement permet l'utilisation du même élément de formulaire avec plusieurs
                fichiers. Cependant ceci introduit un changement subtile dans l'API interne, il est donc signalé ici. 
            </para>
        </sect3>
    </sect2>
</sect1>
