<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="migration.08">
    <title>Zend Framework 0.8</title>

    <para>
        Wenn man von einem älteren Release auf Zend Framework 0.8 oder höher hochrüstet sollte
        man die folgenden Migrations Hinweise beachten.
    </para>

    <sect2 id="migration.08.zend.controller">
        <title>Zend_Controller</title>

        <para>
            Durch bisherige Änderungen bleibt die wesentliche Verwendung der <acronym>MVC</acronym>
            Komponenten gleich:
        </para>

        <programlisting language="php"><![CDATA[
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::run('/path/to/controllers');
]]></programlisting>

        <para>
            Dennoch wurde die Verzeichnisstruktur gründliche überarbeitet, verschiedene Komponenten
            wurden entfernt und mehrere andere umbenannt und hinzugefügt. Die Änderungen beinhalten:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <classname>Zend_Controller_Router</classname> wurde entfernt für den Rewrite
                    Router entfernt.
                </para>
            </listitem>

            <listitem>
                <para>
                    <classname>Zend_Controller_RewriteRouter</classname> wurde in
                    <classname>Zend_Controller_Router_Rewrite</classname> umbenannt und zum Standard
                    Router befördert, der mit dem Framework ausgeliefert wird;
                    <classname>Zend_Controller_Front</classname> wird ihn als Standard verwenden,
                    wenn kein anderer Router übergeben wird.
                </para>
            </listitem>

            <listitem>
                <para>
                    Eine neue Route Klasse für die Verwendung mit dem Rewrite Router wurde
                    eingeführt: <classname>Zend_Controller_Router_Route_Module</classname>; sie
                    deckt die Standardrouten ab, die vom <acronym>MVC</acronym> verwendet werden
                    und bietet die Unterstützung für <link
                        linkend="zend.controller.modular">Controller Module</link>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <classname>Zend_Controller_Router_StaticRoute</classname> wurde umbenannt in
                    <classname>Zend_Controller_Router_Route_Static</classname>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <classname>Zend_Controller_Dispatcher</classname> wurde umbenannt in
                    <classname>Zend_Controller_Dispatcher_Standard</classname>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <methodname>Zend_Controller_Action::_forward()</methodname>'s Argumente wurden
                    geändert. Die Signatur ist nun:
                </para>

                <programlisting language="php"><![CDATA[
final protected function _forward($action,
                                  $controller = null,
                                  $module = null,
                                  array $params = null);
]]></programlisting>

                <para>
                    <varname>$action</varname> wird immer benötigt; wenn kein Controller angegeben
                    wird, wird eine Action im aktuellen Controller angenommen.
                    <varname>$module</varname> wird immer ignoriert, es sei denn
                    <varname>$controller</varname> wird angegeben. Schließlich werden alle
                    übergebenen Parameter <varname>$params</varname> an das Request Objekt
                    angehängt. Wenn man keinen Controller oder kein Modul angeben, aber dennoch
                    Parameter übergeben möchte, gibt man einfach <constant>NULL</constant> für diese
                    Werte an.
                </para>
            </listitem>
        </itemizedlist>
    </sect2>
</sect1>
