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

    <para>
        <classname>Zend_Application</classname>
        proporciona la funcionalidad
        básica del componente, y el punto de entrada a su aplicación
        Zend Framework. Su propósito es doble: para configurar el medio ambiente
        <acronym>PHP</acronym>
        (incluyendo autocarga), y ejecutar su aplicación bootstrap.
    </para>

    <table id="zend.application.core-functionality.application.api.options">
        <title>Zend_Application options</title>
        <tgroup cols="2">
            <thead>
                <row>
                    <entry>Option</entry>
                    <entry>Description</entry>
                </row>
            </thead>
            <tbody>
                <row>
                    <entry>
                        <emphasis>
                            <property>phpSettings</property>
                        </emphasis>
                    </entry>
                    <entry>
                        <para>
                            Array of
                            <filename>php.ini</filename>
                            settings to use. Keys should be the
                            <filename>php.ini</filename>
                            keys.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <emphasis>
                            <property>includePaths</property>
                        </emphasis>
                    </entry>
                    <entry>
                        <para>
                            Additional paths to prepend to the
                            <emphasis>include_path</emphasis>
                            . Should be an array of paths.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <emphasis>
                            <property>autoloaderNamespaces</property>
                        </emphasis>
                    </entry>
                    <entry>
                        <para>
                            Array of additional namespaces to register with the
                            <classname>Zend_Loader_Autoloader</classname>
                            instance.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <emphasis>
                            <property>bootstrap</property>
                        </emphasis>
                    </entry>
                    <entry>
                        <para>
                            Either the string path to the bootstrap class, or an array
                            with elements for the 'path' and 'class' for the application
                            bootstrap.
                        </para>
                    </entry>
                </row>
            </tbody>
        </tgroup>
    </table>

    <note>
        <title>Option names</title>

        <para>
            Please note that option names are case insensitive.
        </para>
    </note>

    <para>
        Típicamente, pasará toda la configuración al constructor
        <classname>Zend_Application</classname>
        , pero también puede configurar
        totalmente el objeto utilizando sus propios métodos. En esta
        referencia
        se ilustran ambos casos de uso.
    </para>

    <table id="zend.application.core-functionality.application.api.table">
        <title>Métodos de Zend_Application</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($environment, $options = null)</methodname>
                    </entry>
                    <entry>
                        <type>Void</type>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$environment</varname>
                                    :
                                    <emphasis>requerido</emphasis>
                                    ,.
                                    String que representa el actual entorno de aplicación.
                                    Strings típicos podrían incluir "desarrollo",
                                    "pruebas", "qa", o "producción", pero será definido
                                    por sus requisitos organizacionales.
                                </para>
                            </listitem>

                            <listitem>
                                <para>
                                    <varname>$options</varname>
                                    :
                                    <emphasis>opcional</emphasis>
                                    .
                                    El argumento puede ser uno de los siguientes valores:
                                </para>
                                <itemizedlist>
                                    <listitem>
                                        <para>
                                            <emphasis><type>String</type></emphasis>
                                            : path
                                            al archivo
                                            <classname>Zend_Config</classname>
                                            para cargarlo como donfiguración de su
                                            aplicación.
                                            <varname>$environment</varname>
                                            se utilizará para
                                            determinar qué sección de la configuración
                                            se traerá.
                                        </para>
                                        <para>
                                            As of 1.10, you may also pass multiple paths containing
                                            config files to be merged into a single configuration.
                                            This assists in reducing config duplication across many
                                            contexts which share common settings (e.g. configs for
                                            <acronym>HTTP</acronym>, or <acronym>CLI</acronym>, each
                                            sharing some characteristics but with their own
                                            conflicting values for others) or merely splitting a
                                            long configuration across many smaller categorised
                                            files. The parameter in this case is an array with a
                                            single key "configs" whose value is an array of the
                                            files to merge. Note: this means you either pass a
                                            literal path, or
                                            <command>array("configs"=>array("/path1","/path2"[,...]));</command>.
                                        </para>
                                    </listitem>

                                    <listitem>
                                        <para>
                                            <emphasis>
                                                <type>Array</type>
                                            </emphasis>
                                            : array asociativo
                                            de datos de configuración para su aplicación.
                                        </para>
                                    </listitem>

                                    <listitem>
                                        <para>
                                            <emphasis>
                                                <classname>Zend_Config</classname>
                                            </emphasis>
                                            :
                                            instancia del objeto de configuración.
                                        </para>
                                    </listitem>
                                </itemizedlist>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Constructor. Los argumentos son como se describe,
                            y será utilizado para establecer el estado incial del
                            objeto. Una instancia de
                            <classname>Zend_Loader_Autoloader</classname>
                            es registrada durante la instanciación.
                            Las opciones pasadas al onstructor se pasan a
                            <methodname>setOptions()</methodname>
                            .
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>getEnvironment()</methodname>
                    </entry>
                    <entry>
                        <type>String</type>
                    </entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>
                            Recuperar el string del medio ambiente que se pasó al
                            constructor.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>getAutoloader()</methodname>
                    </entry>
                    <entry>
                        <classname>Zend_Loader_Autoloader</classname>
                    </entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>
                            Recuperar la instancia de
                            <classname>Zend_Loader_Autoloader</classname>
                            registrados durante la instanciación.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>setOptions(array $options)</methodname>
                    </entry>
                    <entry>
                        <classname>Zend_Application</classname>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$options</varname>
                                    :
                                    <emphasis>requerido</emphasis>
                                    .
                                    Un array de opciones de aplicación.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Todas las opciones se almacenan internamente, y llamando
                            al método varias veces las opciones se fusionarán.
                            Las opciones concordantes con los diversos métodos
                            setter se pasarán a esos métodos.
                            Como ejemplo, la opción "phpSettings" será pasada a
                            <methodname>setPhpSettings()</methodname>
                            .
                            (Los nombres de opciones son indiferentes a mayúsculas/
                            minúsculas.)
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>getOptions()</methodname>
                    </entry>
                    <entry>
                        <entry>array</entry>
                    </entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>
                            Recuperar todas las opciones usadas para inicializar el
                            objeto; podría ser utilizada para guardar en cache a
                            través de
                            <classname>Zend_Config</classname>
                            las
                            opciones para serializar un formato entre reqerimientos.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>hasOption($key)</methodname>
                    </entry>
                    <entry>
                        <type>Boolean</type>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$key</varname>
                                    : String opcional de la clave de lookup
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Determinar si una opción con la clave ha sido registrada
                            o no. Las claves son indiferentes a mayúsculas/
                            minúsculas.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>getOption($key)</methodname>
                    </entry>
                    <entry>
                        <type>mixed</type>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$key</varname>
                                    : String opcional de la clave de lookup
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Recuperar el valor de la opción de una clave dada.
                            Retorna
                            <constant>NULL</constant>
                            si la clave no existe.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>setPhpSettings(array $settings, $prefix = '')</methodname>
                    </entry>
                    <entry>
                        <classname>Zend_Application</classname>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$settings</varname>
                                    :
                                    <emphasis>requerido</emphasis>
                                    .
                                    Array asociativo en los settings de
                                    <acronym>PHP</acronym>
                                    <acronym>INI</acronym>
                                    .
                                </para>
                            </listitem>

                            <listitem>
                                <para>
                                    <varname>$prefix</varname>
                                    :
                                    <emphasis>opcional</emphasis>
                                    .
                                    Prefijo de tipo string para anteponer a la opción
                                    claves. Usado internamente para permitir el mapping
                                    anidado de matrices separados por puntos en las
                                    claves de
                                    <filename>php.ini</filename>
                                    .
                                    En el uso normal, este argumento nunca debe ser
                                    pasado por un usuario.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Establece un conjunto de ajustaes en
                            <filename>php.ini</filename>
                            . para run-time.
                            Las configuraciones separadas por punto pueden ser
                            anidadas jerárquicamente
                            (lo que puede ocurrir con los archivos
                            <acronym>INI</acronym>
                            <classname>Zend_Config</classname>
                            ) mediante un array de
                            de arrays, y aún resolver correctamente.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>setAutoloaderNamespaces(array $namespaces)</methodname>
                    </entry>
                    <entry>
                        <classname>Zend_Application</classname>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$namespaces</varname>
                                    :
                                    <emphasis>requerido</emphasis>
                                    .
                                    Array de strings representando los namespaces a
                                    registrar con la instancia
                                    <classname>Zend_Loader_Autoloader</classname>
                                    .
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                    <entry>
                        <para>
                            Registra los namespaces con la instancia
                            <classname>Zend_Loader_Autoloader</classname>
                            .
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>setBootstrap($path, $class = null)</methodname>
                    </entry>
                    <entry>
                        <classname>Zend_Application</classname>
                    </entry>
                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$path</varname>
                                    ::
                                    <emphasis>requerido</emphasis>
                                    .
                                    Puede ser tanto una instancia de
                                    <classname>Zend_Application_Bootstrap_Bootstrapper
                                    </classname>,
                                    un string del path a la clase bootstrap,
                                    un arrray asociativo de classname =&gt;nombre_de_archivo,
                                    o un array asociativo con las claves 'class' y 'path'.
                                </para>
                            </listitem>

                            <listitem>
                                <para>
                                    <varname>$class</varname>
                                    :
                                    <emphasis>opcional</emphasis>
                                    .
                                    Si
                                    <varname>$path</varname>
                                    : es un string, entonces
                                    <varname>$class</varname>
                                    puede ser especificado,
                                    y debe ser el string nombre de clase de la
                                    clase contenida en el archivo representado por path.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>getBootstrap()</methodname>
                    </entry>
                    <entry>
                        <constant>NULL</constant> |
                        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>

                    </entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>
                            Recuperar la instancia del bootstrap registrado.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>bootstrap()</methodname>
                    </entry>
                    <entry>
                        <type>void</type>
                    </entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>
                            Llamar al método
                            <methodname>bootstrap()</methodname>
                            para cargar la aplicación.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>run()</methodname>
                    </entry>
                    <entry>
                        <type>void</type>
                    </entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>
                            Llamar al método
                            <methodname>run()</methodname>
                            del bootstrap
                            para despachar la aplicación.
                        </para>
                    </entry>
                </row>
            </tbody>
        </tgroup>
    </table>
</sect2>
