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

    <title>Migration von vorhergehenden Versionen</title>

    <para>
        Wärend die externe <acronym>API</acronym> von <classname>Zend_Http_Client</classname> durch
        den kompletten 1.x Baum vom Zend Framework konsistent geblieben ist, wurden einige
        Änderungen in der internen Struktur von <classname>Zend_Http_Client</classname> und den
        abhängigen Klassen durchgeführt.
    </para>

    <para>
        Diese Änderungen sollten keinen Effekt bei Code haben der
        <classname>Zend_Http_Client</classname> verwendet - kann aber Effekte bei
        <acronym>PHP</acronym> Klassen zeigen welche diese Erweitern oder Überladen. Wenn die eigene
        Anwendung <classname>Zend_Http_Client</classname> erweitert, ist es stark zu empfehlen die
        folgenden Änderungen anzusehen bevor der Zend Framework hochgerüstet wird.
    </para>

    <sect2 id="zend.http.client.migration.tozf19">
        <title>Migration von 1.8 oder älter zu 1.9 oder neuer</title>
        <sect3 id="zend.http.client.migration.tozf19.fileuploadsarray">
            <title>
                Änderungen in der internen Speicherung der Information von hochgeladenen Dateien
            </title>

            <para>
                In Version 1.9 vom Zend Framework gibt es eine Ändernug wie
                <classname>Zend_Http_Client</classname> Informationen über hochgeladenen Dateien
                intern speichert, bei denen die
                <methodname>Zend_Http_Client::setFileUpload()</methodname> Methode verwendet wird.
            </para>

            <para>
                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 <ulink
                    url="http://framework.zend.com/issues/browse/ZF-5744">diesem
                    Fehlerreport</ulink> gefunden werden.
            </para>

            <example id="zend.http.client.migration.tozf19.fileuploadsarray.example">
                <title>Interne Speicherung der Informationen von hochgeladenen Dateien</title>

                <programlisting language="php"><![CDATA[
// 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'
//     )
// );
]]></programlisting>
            </example>

            <para>
                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.
            </para>
        </sect3>

        <sect3 id="zend.http.client.migration.tozf19.getparamsrecursize">
            <title>
                Zend_Http_Client::_getParametersRecursive() sollte nicht mehr eingesetzt werden
            </title>

            <para>
                Beginnend mit Version 1.9, wird die geschützte Methode
                <methodname>_getParametersRecursive()</methodname> nicht mehr von
                <classname>Zend_Http_Client</classname> verwendet und ist abgelehnt (deprecated).
                Ihre Verwendung führt zu einer E_NOTICE Nachricht die von <acronym>PHP</acronym>
                kommt.
            </para>

            <para>
                Wenn man <classname>Zend_Http_Client</classname> erweitert und diese Methode
                aufrufr, sollte man sehen das man stattdessen die statische Methode
                <methodname>Zend_Http_Client::_flattenParametersArray()</methodname> verwendet.
            </para>

            <para>
                Nochmals, da <classname>_getParametersRecursive</classname> eine geschützte Methode
                ist, sind nur Benutzer betroffen die <classname>Zend_Http_Client</classname>
                erweitert haben.
            </para>
        </sect3>
    </sect2>
</sect1>
