# Zend_Application_Resource_Modules

`Zend_Application_Resource_Modules` est utilisé pour initialiser les modules de votre application. Si votre module possède un fichier `Bootstrap.php` à sa racine, et que celui-ci contient une classe nommée `Module_Bootstrap` (où "Module" est le nom du module), alors celle-ci sera utiliser pour lancer votre module.

Par défaut, une instance de `Zend_Application_Module_Autoloader` sera créée pour le module en question, utilisant le nom du module et son dossier pour s'initialiser.

Puisque la ressource Modules ne prend pas d'argument par défaut, pour l'activer via la configuration, vous devez créer un tableau vide. Since the Modules resource does not take any arguments by default, in order to enable it via configuration, you need to create it as an empty array. En configuration de type INI cela ressemblerait à ceci :

    resources.modules[] =

En configuration de type XML cela ressemblerait à ceci :

    <resources>
        <modules>
            <!-- Emplacement pour s'assurer qu'un tableau est créé -->
            <placeholder />
        </modules>
    </resources>

En utilisant un tableau PHP, il suffit de le créer comme un tableau vide :

    $options = array(
        'resources' => array(
            'modules' => array()
        )
    );

## Dépendance envers le contrôleur frontal

La ressource Modules possède une dépendance envers la ressource Front Controller. Vous pouvez bien sûr proposer votre propre implémentation de la ressource du contrôleur frontal, si tant est que sa classe se termine par "Frontcontroller", ou, si vous choisissez d'utiliser une méthode d'initialisation, celle-ci doit être "_initFrontController".

## Configurer les modules

Vous pouvez spécifier la configuration en utilisant le nom du module comme préfixe de section dans le fichier de configuration.

Par exemple, supposons que vous possédiez un module appelé "news". Voici des exemples INI et XML de fichiers de configuration pour ce module.

    [production]
    news.resources.db.adapter = "pdo_mysql"
    news.resources.db.params.host = "localhost"
    news.resources.db.params.username = "webuser"
    news.resources.db.params.password = "XXXXXXX"
    news.resources.db.params.dbname = "news"

    <?xml version="1.0"?>
    <config>
        <production>
            <news>
                <resources>
                    <db>
                        <adapter>pdo_mysql</adapter>
                        <params>
                            <host>localhost</host>
                            <username>webuser</username>
                            <password>XXXXXXX</password>
                            <dbname>news</dbname>
                        </params>
                        <isDefaultAdapter>true</isDefaultAdapter>
                    </db>
                </resources>
            </news>
        </production>
    </config>

## Récupérer un bootstrap de module

Il peut être utile de pouvoir récupérer l'objet bootstrap de votre module, pour en exécuter par exemple des méthodes spécifiques, ou encore pour en récupérer l'autoloader. La méthode `getExecutedBootstraps()` peut être utilisée dans ce cas là, elle s'applique sur un objet ressource de modules.

    $resource = $bootstrap->getPluginResource('modules');
    $moduleBootstraps = $resource->getExecutedBootstraps();
    $newsBootstrap = $moduleBootstraps['news'];