<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 14978 -->
<!-- Reviewed: no -->
<sect2 id="zend.application.core-functionality.application">
    <title>Zend_Application</title>

    <para>
        <classname>Zend_Application</classname> bietet die Basisfunktionalität der Komponente, und ist der
        Eintrittspunkt zur eigenen Zend Framework Anwendung. Sein Zweck ist zweigeteilt: das
        Setup der PHP Umgebung (inklusive Autoloading), und das Anwendungs-Bootstrap auszuführen.
    </para>

    <para>
        Typischerweise, wird man die komplette Konfiguration an den <classname>Zend_Application</classname>
        Konstruktor übergeben, aber man kann das Objekt auch komplett konfigurieren indem dessen
        eigene Methoden verwendet werden. Diese Referenz dient dazu beide Fälle zu zeigen.
    </para>

    <table id="zend.application.core-functionality.application.api.table">
        <title>Zend_Application Methoden</title>
        <tgroup cols="4">
            <thead>
                <row>
                    <entry>Methode</entry>
                    <entry>Rückgabewert</entry>
                    <entry>Parameter</entry>
                    <entry>Beschreibung</entry>
                </row>
            </thead>
            <tbody>
                <row>
                    <entry><code>__construct($environment, $options = null)</code></entry>
                    <entry><code>void</code></entry>
                    <entry><itemizedlist>
                            <listitem><para>
                                <code>$environment</code>: <emphasis>Benötigt</emphasis>,.
                                String Repräsentation der aktuellen Anwendungsumgebung.
                                Typischerweise kann ein String "development", "testing", "qa"
                                oder "production" enthalten, wird aber von den eigenen
                                organisatorischen Notwendigkeiten bestimmt.
                            </para></listitem>

                            <listitem>
                            <para>
                                <code>$options</code>: <emphasis>Optional</emphasis>.
                                Das Argument kann einen der folgenden Werte haben:
                            </para>
                            <itemizedlist>
                                <listitem><para>
                                    <emphasis>String</emphasis>: Pfad zu einer
                                    <classname>Zend_Config</classname> Datei für die eigene Anwendung.
                                    <code>$environment</code> wird verwendet um zu erkennen
                                    welche Sektion der Konfiguration geholt werden soll.
                                </para></listitem>

                                <listitem><para>
                                    <emphasis>Array</emphasis>: Assoziatives Array von
                                    Konfigurationsdaten für die eigene Anwendung.
                                </para></listitem>

                                <listitem><para>
                                    <emphasis>Zend_Config</emphasis>: Objekt Instanz der
                                    Konfiguration.
                                </para></listitem>
                            </itemizedlist>
                        </listitem>
                    </itemizedlist></entry>
                    <entry><para>
                        Konstruktor. Die Argumente sind wie beschrieben, und werden verwendet
                        um den initialen Objektstatus zu setzen. Eine Instanz von
                        <classname>Zend_Loader_Autoloader</classname> wird wärend der Instanziierung
                        registriert. Optionen die an den Konstruktor übergeben werden, werden
                        an <code>setOptions()</code> weitergeleitet.
                    </para></entry>
                </row>

                <row>
                    <entry><code>getEnvironment()</code></entry>
                    <entry><code>string</code></entry>
                    <entry>N/A</entry>
                    <entry><para>
                        Empfangen des Umgebungsstrings der an den Konstruktor übergeben wurde.
                    </para></entry>
                </row>

                <row>
                    <entry><code>getAutoloader()</code></entry>
                    <entry><classname>Zend_Loader_Autoloader</classname></entry>
                    <entry>N/A</entry>
                    <entry><para>
                        Empfangen der <classname>Zend_Loader_Autoloader</classname> Instanz die wärend der
                        Instanziierung registriert wurde.
                    </para></entry>
                </row>

                <row>
                    <entry><code>setOptions(array $options)</code></entry>
                    <entry><classname>Zend_Application</classname></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$options</code>: <emphasis>Benötigt</emphasis>.
                            Ein Array von Anweundungsoptionen.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry><para>
                        Alle Optionen werden intern gespeichert, und der mehrfache Aufruf der
                        Methode wird Optionen zusammenfügen. Optionen die zu den verschiedenen
                        Setter Methoden passen werden an diese Methoden übergeben. Als Beispiel
                        wird die Option "phpSettings" dann an <code>setPhpSettings()</code>
                        übergeben. (Optionsnamen sind abhängig von der Groß-/Kleinschreibung.
                    </para></entry>
                </row>

                <row>
                    <entry><code>getOptions()</code></entry>
                    <entry><code>array</code></entry>
                    <entry>N/A</entry>
                    <entry><para>
                        Empfängt alle Optionen die verwendet wurden um das Objekt zu
                        initialisieren; könnte verwendet werden um <classname>Zend_Config</classname>
                        Optionen zwischen Anfragen in ein serialisierbares Format zu cachen.
                    </para></entry>
                </row>

                <row>
                    <entry><code>hasOption($key)</code></entry>
                    <entry><code>boolean</code></entry>
                    <entry>
                    <itemizedlist>
                        <listitem><para>
                            <code>$key</code>: String des Optionsschlüssels der gesucht wird.
                        </para></listitem>
                    </itemizedlist>
                    </entry>
                    <entry><para>
                        Erkennt ob eine Option mit dem spezifizierten Schlüssel registriert wurde
                        oder nicht. Schlüssel sind unabhängig von der Groß-/Kleinschreibung.
                    </para></entry>
                </row>

                <row>
                    <entry><code>getOption($key)</code></entry>
                    <entry><code>mixed</code></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$key</code>: String des Optionsschlüssels der gesucht wird.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry><para>
                        Empfängt den Optionswert eines angegebenen Schlüssels. Gibt null zurück
                        wenn der Schlüssel nicht existiert.
                    </para></entry>
                </row>

                <row>
                    <entry><code>setPhpSettings(array $settings, $prefix = '')</code></entry>
                    <entry><classname>Zend_Application</classname></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$settings</code>: <emphasis>Benötigt</emphasis>.
                            Assoziatives Array von PHP INI Einstellungen.
                        </para></listitem>

                        <listitem><para>
                            <code>$prefix</code>: <emphasis>Optional</emphasis>.
                            String Präfix der Optionsschlüssel vorangestellt werden soll. Wird
                            intern verwendet um das Mapping von verschachtelten Array zu
                            Punkt-getrennten php.ini Schlüssels zu erlauben. Bei normaler
                            Verwendung sollte dieses Argument nie von einem Benutzer
                            übergeben werden.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry><para>
                        Setzt Laufzeit php.ini Einstellungen. Punkt-getrennte Einstellungen
                        können hierarchisch verschachtelt sein (welche in <classname>Zend_Config</classname>
                        INI Dateien auftreten können) über ein Array-von-Arrays, und wird trotzdem
                        korrekt aufgelöst.
                    </para></entry>
                </row>

                <row>
                    <entry><code>setAutoloaderNamespaces(array $namespaces)</code></entry>
                    <entry><classname>Zend_Application</classname></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$namespaces</code>: <emphasis>Benötigt</emphasis>.
                            Array von Strings die den Namespace repräsentieren der mit der
                            <classname>Zend_Loader_Autoloader</classname> Instanz registriert wird.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry><para>
                        Registriert den Namespace mit der <classname>Zend_Loader_Autoloader</classname>
                        Instanz.
                    </para></entry>
                </row>

                <row>
                    <entry><code>setBootstrap($path, $class = null)</code></entry>
                    <entry><classname>Zend_Application</classname></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$path</code>: <emphasis>Benötigt</emphasis>.
                            Kann entweder eine Instanz von
                            <classname>Zend_Application_Bootstrap_Bootstrapper</classname>, ein String Pfad
                            zur Bootstrap Klasse, ein assoziatives Array von Klassenname =&gt;
                            Dateiname, oder ein assoziatives Array mit den Schlüsseln 'class' und
                            'path' sein.
                        </para></listitem>

                        <listitem><para>
                            <code>$class</code>: <emphasis>Optional</emphasis>.
                            Wenn <code>$path</code> ein String ist, kann <code>$class</code>
                            spezifiziert werden, und sollte ein String des Klassennamens der
                            Klasse sein die in der Datei enthalten ist die den Pfad repräsentiert.
                        </para></listitem>
                    </itemizedlist></entry>
                </row>

                <row>
                    <entry><code>getBootstrap()</code></entry>
                    <entry><code>null | Zend_Application_Bootstrap_Bootstrapper</code></entry>
                    <entry>N/A</entry>
                    <entry><para>
                        Empfängt die registrierte Bootstrap Instanz.
                    </para></entry>
                </row>

                <row>
                    <entry><code>bootstrap()</code></entry>
                    <entry><code>void</code></entry>
                    <entry>N/A</entry>
                    <entry><para>
                        Ruft die <code>bootstrap()</code> Methode des Bootstraps auf um die
                        Anwendung zu bootstrappen.
                    </para></entry>
                </row>

                <row>
                    <entry><code>run()</code></entry>
                    <entry><code>void</code></entry>
                    <entry>N/A</entry>
                    <entry><para>
                        Ruf die <code>run()</code> Methode des Bootstraps auf um die Anwendung
                        auszuführen.
                    </para></entry>
                </row>
            </tbody>
        </tgroup>
    </table>
</sect2>
