<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<sect2 id="zend.application.core-functionality.bootstrap-resourcebootstrapper">
    <title>Zend_Application_Bootstrap_ResourceBootstrapper</title>

    <para>
        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname> is an
        interface to use when a bootstrap class will be loading external
        resources -- i.e., one or more resources will not be defined directly in
        the class, but rather via plugins. It should be used in conjunction with <link
            linkend="zend.application.core-functionality.bootstrap-bootstrapper">Zend_Application_Bootstrap_Bootstrapper</link>;
        <link
            linkend="zend.application.core-functionality.bootstrap-bootstrapabstract">Zend_Application_Bootstrap_BootstrapAbstract</link>
        implements this functionality.
    </para>

    <para>
        The following methods make up the definition of the interface.
    </para>

    <table id="zend.application.core-functionality.bootstrap-resourcebootstrapper.methods-table">
        <title>Zend_Application_Bootstrap_ResourceBootstrapper Interface</title>

        <tgroup cols="4">
            <thead>
                <row>
                    <entry>Method</entry>
                    <entry>Return Value</entry>
                    <entry>Parameters</entry>
                    <entry>Description</entry>
                </row>
            </thead>

            <tbody>
                <row>
                    <entry>
                        <methodname>registerPluginResource($resource, $options = null)</methodname>
                    </entry>

                    <entry>
                        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
                    </entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$resource</varname>: <emphasis>required</emphasis>.
                                    A resource name or
                                    <classname>Zend_Application_Resource_Resource</classname>
                                    object.
                                </para>
                            </listitem>

                            <listitem>
                                <para>
                                    <varname>$options</varname>: <emphasis>optional</emphasis>.
                                    An array or <classname>Zend_Config</classname> object to pass
                                    to the resource on instantiation.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>

                    <entry>
                        <para>
                            Register a resource with the class, providing optional
                            configuration to pass to the resource.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry><methodname>unregisterPluginResource($resource)</methodname></entry>

                    <entry>
                        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
                    </entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$resource</varname>: <emphasis>required</emphasis>.
                                    Name of a resource to unregister from the class.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>

                    <entry><para>Remove a plugin resource from the class.</para></entry>
                </row>

                <row>
                    <entry><methodname>hasPluginResource($resource)</methodname></entry>
                    <entry><type>Boolean</type></entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$resource</varname>: <emphasis>required</emphasis>.
                                    Name of the resource.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>

                    <entry>
                        <para>
                            Determine if a specific resource has been registered with the class.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry><methodname>getPluginResource($resource)</methodname></entry>
                    <entry><classname>Zend_Application_Resource_Resource</classname></entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$resource</varname>: <emphasis>required</emphasis>.
                                    Name of a resource to retrieve (string).
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>

                    <entry><para>Retrieve a plugin resource instance by name.</para></entry>
                </row>

                <row>
                    <entry><methodname>getPluginResourceNames()</methodname></entry>
                    <entry><type>Array</type></entry>
                    <entry>N/A</entry>
                    <entry>
                        <para>Retrieve a list of all registered plugin resource names.</para>
                    </entry>
                </row>

                <row>
                    <entry>
                        <methodname>setPluginLoader(Zend_Loader_PluginLoader_Interface
                            $loader)</methodname>
                    </entry>

                    <entry>
                        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
                    </entry>

                    <entry>
                        <itemizedlist>
                            <listitem>
                                <para>
                                    <varname>$loader</varname>: <emphasis>required</emphasis>.
                                    Plugin loader instance to use when resolving plugin
                                    names to classes.
                                </para>
                            </listitem>
                        </itemizedlist>
                    </entry>

                    <entry>
                        <para>
                            Register a plugin loader instance to use when resolving plugin class
                            names.
                        </para>
                    </entry>
                </row>

                <row>
                    <entry><methodname>getPluginLoader()</methodname></entry>
                    <entry><classname>Zend_Loader_PluginLoader_Interface</classname></entry>
                    <entry>N/A</entry>
                    <entry><para>Retrieve the registered plugin loader.</para></entry>
                </row>
            </tbody>
        </tgroup>
    </table>
</sect2>
