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

    <para>
        <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname> ist eine abstrakte
        Klasse welche die Basisfunktionalität des normalen Bootstrappings bietet. Sie implementiert
        sowohl <link
            linkend="zend.application.core-functionality.bootstrap-bootstrapper">Zend_Application_Bootstrap_Bootstrapper</link>
        als auch <link
            linkend="zend.application.core-functionality.bootstrap-resourcebootstrapper">Zend_Application_Bootstrap_ResourceBootstrapper</link>.
    </para>

    <table id="zend.application.core-functionality.bootstrap-bootstrapabstract.api.table">
        <title>Zend_Application_Bootstrap_BootstrapAbstract 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($application)</code></entry>
                    <entry><code>void</code></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$application</code>: <emphasis>Benötigt</emphasis>.
                            Akzeptiert entweder ein <classname>Zend_Application</classname> oder ein
                            <classname>Zend_Application_Bootstrap_Bootstrapper</classname> Objekt als sein
                            einziges Argument.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry><para>
                        Constructor. Akzeptiert ein einzelnes Argument, welches ein
                        <classname>Zend_Application</classname> Objekt oder ein anderes Bootstrap Objekt
                        sein sollte.
                    </para></entry>
                </row>

                <row>
                    <entry><code>setOptions(array $options)</code></entry>
                    <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$options</code>: <emphasis>Benötigt</emphasis>.
                            Array von Optionen die zu setzen sind.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry>
                    <para>
                        Jede Option die einen passenden Setter hat wird diesen Setter aufrufen;
                        andernfalls wird die Option einfach für ein späteres Empfangen gespeichert.
                        Wenn die eigene Klasse, als Beispiel, eine <code>setFoo()</code> Methode
                        definiert, würde die Option 'foo' als Wert an diese Methode übergeben
                        werden.
                    </para>
                    <para>
                        Zwei zusätzliche, spezielle Options Schnüssel können auch verwendet werden.
                        <code>pluginPaths</code> kann verwendet werden um einen Präfix Pfad zu
                        Plugin Ressourcen zu spezifizieren; er solte ein Array von
                        Klassenpräfix/Instanziierungs Options Paaren sein.
                        <code>resources</code> kann verwendet werden um eine Plugin Ressource zu
                        spezifizieren die verwendet werden soll, und sollte aus Paaren von
                        Plugin Ressource/Instanziierungs Optionen bestehen.
                    </para>
                    </entry>
                </row>

                <row>
                    <entry><code>getOption()</code></entry>
                    <entry><code>array</code></entry>
                    <entry>N/A</entry>
                    <entry><para>
                        Gibt alle über <code>setOptions()</code> registrierten Optionen zurück.
                    </para></entry>
                </row>

                <row>
                    <entry><code>hasOption($key)</code></entry>
                    <entry><code>boolean</code></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$key</code>: <emphasis>Benötigt</emphasis>.
                            Optionsschlüssel der getestet werden soll.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry><para>Erkennt ob ein Optionsschlüssel vorhanden ist.</para></entry>
                </row>

                <row>
                    <entry><code>getOption($key)</code></entry>
                    <entry><code>mixed</code></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$key</code>: <emphasis>Benötigt</emphasis>.
                            Optionsschlüssel der empfangen werden soll.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry><para>
                        Empfängt den Wert der mit dem Optionsschlüssel verknüpft ist; gibt null
                        zurück wenn keine Option mit diesem Schlüssel registriert wurde.
                    </para></entry>
                </row>

                <row>
                    <entry><code>setApplication(Zend_Application |
                            Zend_Application_Bootstrap_Bootstrapper $application)</code></entry>
                    <entry>
                        <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
                    </entry>
                    <entry><itemizedlist>
                            <listitem><para>
                                <code>$application</code>: <emphasis>Benötigt</emphasis>.
                            </para></listitem>
                    </itemizedlist></entry>
                    <entry><para>
                        Registriert das Eltern-Anwendungs/Bootstrap Objekt.
                    </para></entry>
                </row>

                <row>
                    <entry><code>getApplication()</code></entry>
                    <entry><classname>Zend_Application | Zend_Application_Bootstrap_Bootstrapper</classname></entry>
                    <entry>N/A</entry>
                    <entry><para>
                        Empfängt das Anwendungs/Bootstrap Objekt das über den Konstruktor übergeben
                        wurde.
                    </para></entry>
                </row>

                <row>
                    <entry><code>getEnvironment()</code></entry>
                    <entry><code>string</code></entry>
                    <entry>N/A</entry>
                    <entry><para>
                        Empfängt den Umgebungs String der mit dem Eltern-Anwendungs/Bootstrap
                        Objekt registriert wurde.
                    </para></entry>
                </row>

                <row>
                    <entry><code>getClassResources()</code></entry>
                    <entry><code>array</code></entry>
                    <entry>N/A</entry>
                    <entry><para>
                        Empfängt eine Liste von vorhandenen Ressourcen Initialisierungsnamen die
                        in der Klasse definiert sind. Das kann von der Implementierung abhängig
                        sein.
                    </para></entry>
                </row>

                <row>
                    <entry><code>getContainer()</code></entry>
                    <entry><code>object</code></entry>
                    <entry>N/A</entry>
                    <entry><para>
                        Empfängt den Container der die Ressourcen speichert. Wenn aktuell kein
                        Container registriert ist, wird eine Instanz von <link
                            linkend="zend.registry">Zend_Registry</link> registriert bevor diese
                        retourniert wird.
                    </para></entry>
                </row>

                <row>
                    <entry><code>setContainer($container)</code></entry>
                    <entry><code>Zend_Application_Bootstrap_BootstrapAbstract</code></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$container</code>, <emphasis>Benötigt</emphasis>. Ein Objekt
                            in dem Ressourcen gespeichert werden.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry><para>
                        Bietet einen Container in dem Ressourcen gespeichert werden. Wenn eine
                        Ressourcen Methode oder ein Plugin einen Wert zurückgibt, wird dieser
                        im Container gespeichert um später empfangen werden zu können.
                    </para></entry>
                </row>

                <row>
                    <entry><code>hasResource($name)</code></entry>
                    <entry><code>boolean</code></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$name</code>, <emphasis>Benötigt</emphasis>. Name der Ressource
                            die zu prüfen ist.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry><para>
                        Wenn eine Ressourcen-Methode oder ein Plugin einen Wert zurückgibt, wird
                        dieser im Ressourcen Container gespeichert (siehe
                        <code>getContainer()</code> und <code>setContainer()</code>). Diese
                        Methode zeigt ob ein Wert für dies Ressouce gesetzt wurde oder nicht.
                    </para></entry>
                </row>

                <row>
                    <entry><code>getResource($name)</code></entry>
                    <entry><code>mixed</code></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$name</code>, <emphasis>Benötigt</emphasis>.
                            Name der Ressource die geholt werden soll.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry><para>
                        Wenn eine Ressourcen-Methode oder ein Plugin einen Wert zurückgibt, wird
                        dieser im Ressourcen Container gespeichert (siehe
                        <code>getContainer()</code> und <code>setContainer()</code>). Diese
                        Methode gibt die Ressource vom Container zurück.
                    </para></entry>
                </row>

                <row>
                    <entry><code>bootstrap($resource = null)</code></entry>
                    <entry><code>mixed</code></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$resource</code>: <emphasis>Optional</emphasis>.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry>
                    <para>
                        Wenn <code>$resource</code> leer ist, werden alle Bootstrap Ressourcen
                        ausgeführt. Wenn es ein String ist, wird diese einzelne Ressource
                        ausgeführt; wenn es ein Array ist, wird jede Ressource in diesem Array
                        ausgeführt.
                    </para>

                    <para>
                        Diese Methode kann verwendet werden um individuelle Bootstraps auszuführen
                        die entweder in der Klasse selbst definiert sind, oder über eine Ressource
                        Plugin Klasse. Eine Ressource die in der Klasse definert ist wird
                        bevorzugt, vor einem Ressource Plugin, ausgeführt wenn ein Namenskonflikt
                        besteht.
                    </para>
                    </entry>
                </row>

                <row>
                    <entry><code>run()</code></entry>
                    <entry><code>void</code></entry>
                    <entry>N/A</entry>
                    <entry><para>
                        Definiert welche Anwendungslogik nach dem Bootstrapping ausgeführt wird.
                    </para></entry>
                </row>

                <row>
                    <entry><code>__call($method, $args)</code></entry>
                    <entry><code>mixed</code></entry>
                    <entry><itemizedlist>
                        <listitem><para>
                            <code>$method</code>: <emphasis>Benötigt</emphasis>.
                            Der Methodenname der ausgerufen werden soll.
                        </para></listitem>

                        <listitem><para>
                            <code>$args</code>: <emphasis>Benötigt</emphasis>.
                            Array von Argumenten die im Methodenausruf verwendet werden sollen.
                        </para></listitem>
                    </itemizedlist></entry>
                    <entry><para>
                        Bietet einen einfachen Weg um individuelle Ressourcen zu Bootstrappen indem
                        es erlaubt 'bootstrap&lt;ResourceName&gt;()' aufzurufen, anstatt das die
                        <code>bootstrap()</code> Methode verwendet wird.
                    </para></entry>
                </row>
            </tbody>
        </tgroup>
    </table>
</sect2>
