[MANUAL] English:
[zend.git] / documentation / manual / en / module_specs / Zend_Application-AvailableResources-Modules.xml
blobd762faca7520a70971c3548f2cd8fe94cc800a04
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <sect2 id="zend.application.available-resources.modules">
4     <title>Zend_Application_Resource_Modules</title>
6     <para>
7         <classname>Zend_Application_Resource_Modules</classname> is used to initialize
8         your application modules. If your module has a
9         <filename>Bootstrap.php</filename> file in its root, and it contains a class
10         named <classname>Module_Bootstrap</classname> (where "Module" is the module name),
11         then it will use that class to bootstrap the module.
12     </para>
14     <para>
15         By default, an instance of
16         <classname>Zend_Application_Module_Autoloader</classname> will be created for the
17         module, using the module name and directory to initialize it.
18     </para>
20     <para>
21         Since the Modules resource does not take any arguments by default, in order to enable it
22         via configuration, you need to create it as an empty array. In <acronym>INI</acronym> style
23         configuration, this looks like:
24     </para>
26     <programlisting language="ini"><![CDATA[
27 resources.modules[] =
28 ]]></programlisting>
30     <para>
31         In <acronym>XML</acronym> style configuration, this looks like:
32     </para>
34     <programlisting language="xml"><![CDATA[
35 <resources>
36     <modules>
37         <!-- Placeholder to ensure an array is created -->
38         <placeholder />
39     </modules>
40 </resources>
41 ]]></programlisting>
43     <para>
44         Using a standard <acronym>PHP</acronym> array, simply create it as an empty array:
45     </para>
47     <programlisting language="php"><![CDATA[
48 $options = array(
49     'resources' => array(
50         'modules' => array(),
51     ),
53 ]]></programlisting>
55     <note>
56         <title>Front Controller Resource Dependency</title>
58         <para>
59             The Modules resource has a dependency on the <link
60                 linkend="zend.application.available-resources.frontcontroller">Front
61             Controller resource</link>. You can, of course, provide your own
62             replacement for that resource via a custom Front Controller resource
63             class or a class initializer method -- so long as the resource
64             plugin class ends in "Frontcontroller" or the initializer method is
65             named "_initFrontController" (case insensitive).
66         </para>
67     </note>
69     <example id="zend.application.available-resources.modules.configExample">
70         <title>Configuring Modules</title>
72         <para>
73             You can specify module-specific configuration using the module name
74             as a prefix or sub-section in your configuration file.
75         </para>
77         <para>
78             For example, let's assume that your application has a "news" module.
79             The following are <acronym>INI</acronym> and <acronym>XML</acronym> examples showing
80             configuration of resources in that module.
81         </para>
83         <programlisting language="ini"><![CDATA[
84 [production]
85 news.resources.db.adapter = "pdo_mysql"
86 news.resources.db.params.host = "localhost"
87 news.resources.db.params.username = "webuser"
88 news.resources.db.params.password = "XXXXXXX"
89 news.resources.db.params.dbname = "news"
90 ]]></programlisting>
92         <programlisting language="xml"><![CDATA[
93 <?xml version="1.0"?>
94 <config>
95     <production>
96         <news>
97             <resources>
98                 <db>
99                     <adapter>pdo_mysql</adapter>
100                     <params>
101                         <host>localhost</host>
102                         <username>webuser</username>
103                         <password>XXXXXXX</password>
104                         <dbname>news</dbname>
105                     </params>
106                     <isDefaultAdapter>true</isDefaultAdapter>
107                 </db>
108             </resources>
109         </news>
110     </production>
111 </config>
112 ]]></programlisting>
113     </example>
115     <example id="zend.application.available-resources.modules.retrieveBootstrapExample">
116         <title>Retrieving a specific module bootstrap</title>
118         <para>
119             On occasion, you may need to retrieve the bootstrap object for a
120             specific module -- perhaps to run discrete bootstrap methods, or to
121             fetch the autoloader in order to configure it. This can be done
122             using the Modules resource's <methodname>getExecutedBootstraps()</methodname>
123             method.
124         </para>
126         <programlisting language="php"><![CDATA[
127 $resource = $bootstrap->getPluginResource('modules');
128 $moduleBootstraps = $resource->getExecutedBootstraps();
129 $newsBootstrap = $moduleBootstraps['news'];
130 ]]></programlisting>
131     </example>
132 </sect2>