<?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>
        es
        una clase abstracta que proporciona la base funcional de un arranque
        (bootstrap) común.
        Implementa a ambos
        <link linkend="zend.application.core-functionality.bootstrap-bootstrapper">
            Zend_Application_Bootstrap_Bootstrapper</link>
        y a
        <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>Métodos de Zend_Application_Bootstrap_BootstrapAbstract</title>
        <tgroup cols="4">
            <thead>
                <row>
                    <entry>Método</entry>
                    <entry>Valor de Retorno</entry>
                    <entry>Parámetros</entry>
                    <entry>Descripción</entry>
                </row>
            </thead>
            <tbody>
                <row>
                    <entry>
                        <methodname>__construct($application)</methodname>
                    </entry>
                    <entry>
                        <type>void</type>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$application</varname>
                                    :
                                    <emphasis>requerido</emphasis>
                                    .
                                    Acepta tanto a
                                    <classname>Zend_Application</classname>
                                    o al
                                    objeto
                                    <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
                                    como único argumento.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Constructor. Acepta un solo argumento, que debe ser un
                            objeto
                            <classname>Zend_Application</classname>
                            , u otro
                            objeto bootstrap.
                        </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>requerido</emphasis>
                                    .
                                    Array de opciones a establecer.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Cualquier opción que tiene un setter concordante invocará
                            ese setter; de lo contrario, la opción será simplemente
                            almacenada para su recuperación posterior.
                            Como ejemplo, si su clase extendida definió
                            un método
                            <methodname>setFoo()</methodname>
                            , la opción 'foo'
                            pasaría el valor a ese método.
                        </para>
                        <para>
                            También pueden usarse dos opciones especiales clave.
                            <property>pluginPaths</property>
                            puede ser utilizada para
                            especificar prefijos de paths para los recursos plugin;
                            debería ser un array de la clase pares prefijo/path.
                            <property>resources</property>
                            puede ser utilizada para
                            especificar los recursos plugin a utilizar,
                            y debería estar constituído por pares de opciones plugin
                            recurso/instanciación.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>getOptions()</methodname>
                    </entry>
                    <entry>
                        <type>array</type>
                    </entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>
                            Devuelve todas las opciones registradas via
                            <methodname>setOptions()</methodname>
                            .
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>hasOption($key)</methodname>
                    </entry>
                    <entry>
                        <type>boolean</type>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$key</varname>
                                    :
                                    <emphasis>requerido</emphasis>
                                    .
                                    Clave de opción a probar.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>Determinar si una opción clave está presente.</para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>getOption($key)</methodname>
                    </entry>
                    <entry>
                        <type>mixed</type>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$key</varname>
                                    :
                                    <emphasis>requerido</emphasis>
                                    .
                                    Clave de opción para recuperar.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Recuperar el valor asociado con una opción clave;
                            retorna
                            <constant>NULL</constant>
                            si ninguna opción está registrada con
                            esa clave.
                        </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>requerido</emphasis>
                                    .
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Registrar al objeto padre de la aplicación o en el bootstrap.
                   </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>getApplication()</methodname>
                    </entry>
                    <entry>
                        <classname>Zend_Application |
                            Zend_Application_Bootstrap_Bootstrapper</classname>
                    </entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>
                            Recuperar el objeto aplicación/bootstrap pasado via
                            constructor.
                   </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>getEnvironment()</methodname>
                    </entry>
                    <entry>
                        <type>string</type>
                    </entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>
                            Recuperar el string del entorno registrado
                            con el objeto padre de la aplicación o del bootstrap.
                   </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>getClassResources()</methodname>
                    </entry>
                    <entry>
                        <type>array</type>
                    </entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>
                            Recuperar una lista de los recursos inicializadores de
                            nombres disponibles con los fueron definidos en la clase.
                            Esto puede ser de implementación específica.
                   </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>getContainer()</methodname>
                    </entry>
                    <entry>
                        <type>object</type>
                    </entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>
                            Recupera el contenedor que almacena recursos.
                            Si no hay un contenedor actualmente registrado,
                            registra una instancia
                            <link linkend="zend.registry">Zend_Registry</link>
                            antes de retornarlo.
                        </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>requerido</emphasis>
                                    .
                                    Un objeto en el cual almacenar recursos.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Proporciona un contenedor en el que se almacenan recursos.
                            Cuando un método de recurso o plugin devuelve un valor,
                            será almacenado en este contenedor para su recuperación
                            posterior.
                   </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>hasResource($name)</methodname>
                    </entry>
                    <entry>
                        <type>boolean</type>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$name</varname>
                                    ,
                                    <emphasis>requerido</emphasis>
                                    .
                                    Nombre del recurso a comprobar.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Cuando un método de recurso o plugin devuelve un valor,
                            será almacenado en el contenedor de recursos (ver
                            <methodname>getContainer()</methodname>
                            y
                            <methodname>setContainer()</methodname>
                            . Este método indicará si
                            se ha establecido o no un valor para ese recurso.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>getResource($name)</methodname>
                    </entry>
                    <entry>
                        <type>mixed</type>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$name</varname>
                                    ,
                                    <emphasis>requerido</emphasis>
                                    .
                                    Nombre del recurso a recuperar.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Cuando un método de recurso o plugin devuelve un valor,
                            será almacenado en el contenedor de recursos (ver
                            <methodname>getContainer()</methodname>
                            y
                            <methodname>setContainer()</methodname>
                            . Este método recuperará
                            recursos del contenedor.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>bootstrap($resource = null)</methodname>
                    </entry>
                    <entry>
                        <type>mixed</type>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$resource</varname>
                                    :
                                    <emphasis>opcional</emphasis>
                                    .
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Si
                            <varname>$resource</varname>
                            está vacío, ejecutar todos
                            los recursos del bootstrap.
                            Si es un string, ejecutar ese único recurso;
                            si es un array, ejecutar cada recurso del array.
                        </para>

                        <para>
                            Este método puede ser utilizado para ejecutar
                            bootstraps individuales, ya hayan sido definidos en la
                            propia clase o mediante clases de recursos de plugin.
                            Un recurso definido en la clase será ejecutado en
                            preferencia por sobre un recurso de plugin en el caso
                            de conflicto de nombres.
                   </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>run()</methodname>
                    </entry>
                    <entry>
                        <type>void</type>
                    </entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>
                            Define qué lógica de aplicación ejecutar luego del
                            bootstrap.
                   </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>__call($method, $args)</methodname>
                    </entry>
                    <entry>
                        <type>mixed</type>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$method</varname>
                                    :
                                    <emphasis>requerido</emphasis>
                                    .
                                    El nombre del método a llamar.
                                </para>
                            </listitem>

                            <listitem>
                                <para>
                                    <varname>$args</varname>
                                    :
                                    <emphasis>requerido</emphasis>
                                    .
                                    Array de argumentos para usar en el método de llamada.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Ofrece comodidad para bootstrapping de recursos
                            individuales permitiéndole llamar
                            'bootstrap&lt;ResourceName&gt;()' en vez de usar el
                            método
                            <methodname>bootstrap()</methodname>
                            .
                        </para>
                    </entry>
                </row>
            </tbody>
        </tgroup>
    </table>
</sect2>
