2010-04-26 5 views
1

Quel est le meilleur moyen d'accéder à mes modèles et formulaires à partir d'un contrôleur d'un module?accéder aux modèles et aux formulaires dans les modules

Expliquons avec des « images »:

/application/module/storage/controllers/IndexController.php 

doit appeler readAction dans la classe appelée storage_Model_Files dans

/application/module/storage/models/Files.php 

J'ai fait la structure dir de cette application et ces formes et modèles avec zf .sh (Zend_Tool).

J'ai lu toutes sortes de façons d'inclure manuellement ces fichiers. Je veux paresseux les charger tout comme tout est fait automatiquement avec le module par défaut. Je n'arrive pas à trouver comment dans les docs.

Est-ce que cela a du sens?

J'ai:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 

dans mon dossier application.ini. Donc, je peux bien accéder à mes contrôleurs.

Merci pour votre aide!

Répondre

2

Vous devez ajouter le module explicitement. Vos options sont:

1.) Ajouter à votre application.ini

resources.modules.storage = "" 

et créer un fichier /application/module/storage/Bootstrap.php

class Storage_Bootstrap extends Zend_Application_Module_Bootstrap 
{ 
} 

2.) Créer une méthode dans votre Boostrap.php

protected function _initAutoload() 
{ 
    $loader = Zend_Loader_Autoloader::getInstance(); 
    $autoloader = new Zend_Application_Module_Autoloader(array(
     'namespace' => 'Storage_', 
     'basePath' => APPLICATION_PATH . '/storage', 
    )); 

    return $autoloader; 
} 
+0

Intéressant. Donc, je n'ai besoin de le faire qu'une fois par module? Cela entraînera-t-il également le chargement automatique des formulaires? Qu'est-ce que l'entrée application.ini: resources.modules.storage = ""? –

+0

Jetez un oeil sur le lien Vladimir fourni. Il y a une section à propos de l'autochargeur de ressources du module. "Lors de l'utilisation de bootstraps avec Zend_Application, une instance de Zend_Application_Module_Autoloader sera créée par défaut pour chaque module discret, ce qui vous permettra de charger automatiquement les ressources du module." –

+0

BTW; vous devez utiliser l'option 1 ou 2. Les deux ne sont pas nécessaires. –

0
+0

« autoloaders de ressources destinées à gérer le code de bibliothèque espaces de noms qui suivent Zend Framework co lignes directrices standard, mais qui n'ont pas de correspondance 1: 1 entre le nom de la classe et la structure du répertoire. " Cependant, j'ai un mappage de classe 1: 1 entre le nom de la classe et la structure du répertoire. Je vais modifier ma question pour que ce soit plus clair. –

Questions connexes