<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- 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"><classname>Zend_Application_Bootstrap_Bootstrapper</classname></link>
        als auch <link
            linkend="zend.application.core-functionality.bootstrap-resourcebootstrapper"><classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname></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><methodname>__construct($application)</methodname></entry>
                    <entry><type>Void</type></entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$application</varname>: <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><methodname>setOptions(array $options)</methodname></entry>
                    <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$options</varname>: <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
                            <methodname>setFoo()</methodname> 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. <property>pluginPaths</property> kann verwendet werden um einen
                            Präfix Pfad zu Plugin Ressourcen zu spezifizieren; er solte ein Array
                            von Klassenpräfix zu Instanziierungs Options Paaren sein.
                            <property>resources</property> kann verwendet werden um eine Plugin
                            Ressource zu spezifizieren die verwendet werden soll, und sollte aus
                            Paaren von Plugin Ressource zu Instanziierungs Optionen bestehen.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry><methodname>getOptions()</methodname></entry>
                    <entry><type>Array</type></entry>
                    <entry>N/A</entry>

                    <entry>
                        <para>
                            Gibt alle über <methodname>setOptions()</methodname> registrierten
                            Optionen zurück.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry><methodname>hasOption($key)</methodname></entry>
                    <entry><type>Boolean</type></entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$key</varname>: <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><methodname>getOption($key)</methodname></entry>
                    <entry><type>Mixed</type></entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$key</varname>: <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
                            <constant>NULL</constant> zurück wenn keine Option mit diesem Schlüssel
                            registriert wurde.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>setApplication(Zend_Application |
                        Zend_Application_Bootstrap_Bootstrapper $application)</methodname>
                    </entry>

                    <entry>
                        <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
                    </entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$application</varname>: <emphasis>Benötigt</emphasis>.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>

                    <entry>
                        <para>Registriert das Eltern-Anwendungs oder Bootstrap Objekt.</para>
                    </entry>
                </row>

                <row>
                    <entry><methodname>getApplication()</methodname></entry>

                    <entry>
                        <classname>Zend_Application</classname> |
                        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
                    </entry>

                    <entry>N/A</entry>

                    <entry>
                        <para>
                            Empfängt das Anwendungs oder Bootstrap Objekt das über den Konstruktor
                            übergeben wurde.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry><methodname>getEnvironment()</methodname></entry>
                    <entry><type>String</type></entry>
                    <entry>N/A</entry>

                    <entry>
                        <para>
                            Empfängt den Umgebungs String der mit dem Eltern-Anwendungs oder
                            Bootstrap Objekt registriert wurde.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry><methodname>getClassResources()</methodname></entry>
                    <entry><type>Array</type></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><methodname>getContainer()</methodname></entry>
                    <entry><type>Object</type></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><methodname>setContainer($container)</methodname></entry>

                    <entry>
                        <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
                    </entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$container</varname>, <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><methodname>hasResource($name)</methodname></entry>
                    <entry><type>Boolean</type></entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$name</varname>, <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
                            <methodname>getContainer()</methodname> und
                            <methodname>setContainer()</methodname>). Diese Methode zeigt ob ein
                            Wert für dies Ressouce gesetzt wurde oder nicht.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry><methodname>getResource($name)</methodname></entry>
                    <entry><type>Mixed</type></entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$name</varname>, <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
                            <methodname>getContainer()</methodname> und
                            <methodname>setContainer()</methodname>). Diese Methode gibt die
                            Ressource vom Container zurück.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry><methodname>bootstrap($resource = null)</methodname></entry>
                    <entry><type>Mixed</type></entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$resource</varname>: <emphasis>Optional</emphasis>.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>

                    <entry>
                        <para>
                            Wenn <varname>$resource</varname> 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><methodname>run()</methodname></entry>
                    <entry><type>Void</type></entry>
                    <entry>N/A</entry>

                    <entry>
                        <para>
                            Definiert welche Anwendungslogik nach dem Bootstrapping ausgeführt wird.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry><methodname>__call($method, $args)</methodname></entry>
                    <entry><type>Mixed</type></entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$method</varname>: <emphasis>Benötigt</emphasis>.
                                    Der Methodenname der ausgerufen werden soll.
                                </para>
                            </listitem>

                            <listitem>
                                <para>
                                    <varname>$args</varname>: <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 <methodname>bootstrap()</methodname> Methode verwendet wird.
                        </para>
                    </entry>
                </row>
            </tbody>
        </tgroup>
    </table>
</sect2>
