Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour.
Je viens vers car j'ai un petit soucis dans mon appli modulaire qui se présente sous cette forme:
|--application
| |--configs
| |--layouts
| |--models
| |--modules
| | |--admin
| | | |--controllers
| | | |--views
| | |
| | |--default
| | | |--controllers
| | | |--views
Je souhaite donc avoir un dossier models commun à mes deux modules. J'ai lu ce tutoriel à propos du chargement de ressources, mais je ne comprend pas à quel endroit on doit créer la classe qui étend de Zend_Application_Module_Autoloader car si j'ai bien comprit c'est à partir de là qu'on doit définir les différents dossiers de notre application.
voici quelque un des mes fichiers :
application.ini
[production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 includePaths.library = APPLICATION_PATH "/../library" includePaths.zend = APPLICATION_PATH "/../../Library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" autoloadernamespaces.ems = "Ems_" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.frontController.plugins.layout = Ems_Controller_Plugin_Layout resources.modules[] = "" resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts" resources.layout.layout = default admin.resources.layout.layout = admin resources.view.helperPath.App_View_Helper = APPLICATION_PATH "/views/helpers" # connexion à une base de données resources.db.adapter = "pdo_mysql" resources.db.params.host = "localhost" resources.db.params.username = "****" resources.db.params.password = "****" resources.db.params.dbname = "****" [staging : production] [testing : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 [development : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1
Bootstrap principal
<?php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { /* * Auto chargement des modules */ protected function _initAppAutoload() { $autoloader = new Zend_Application_Module_Autoloader(array( 'namespace' => 'App', 'basePath' => dirname(__FILE__), )); return $autoloader; } /* * Helper pour le changement de layout pour les modules */ protected function _initLayoutHelper() { $this->bootstrap('frontController'); $layout = Zend_Controller_Action_HelperBroker::addHelper( new Ems_Controller_Action_Helper_LayoutLoader()); } /* * Auto chargement des classes */ protected function _initClassAutoLoad() { require_once 'Zend/Loader.php'; // Chargement automatique des classes $registerAutoload = Zend_Loader_Autoloader::getInstance(); return $registerAutoload; } }
Bootstrap du module admin
<?php class Admin_Bootstrap extends Zend_Application_Module_Bootstrap { /* * Chargement des ressources pour la BDD */ protected function _initDb() { $config = new Zend_Config_Ini('config.ini'); $db = Zend_Db::factory($config->database); return $db; } }
Le problème c'est lorsque j'essaye d'instancier un de mes modèles dans le module admin j'ai une erreur qui survient : Fatal error: Class 'TAdmin' not found in ...\application\modules\admin\controllers\AdministrationUserController.php on line 29
J'en déduis donc qu'il ne sait pas ou aller chercher les modèles, et j'ai vraiment du mal à cerner comment dire mon application ou elle doit aller les piocher.
Dernière modification par slake13 (16-10-2009 10:39:06)
Hors ligne
J'ai trouvé ce qu'il cloché, c'est parce que je déclarais mal la classe de mon model...
Hors ligne
Pages: 1