<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 17172 -->
<!-- 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>getOption()</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><code>Zend_Application_Bootstrap_BootstrapAbstract</code></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 <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><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>
