Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour.
Travaillant actuellement sur une structure modulaire, je n'arrive pas à configurer mon autoloader.
Que dois-je faire pour qu'en appelant la classe Application_Model_Name, le fichier sitename/application/models/name.php daigne se charger? J'ai beau feuilleter la doc encore et encore, il semble que ce devrait être automatique.
Mon fichier de config (du moins, la partie qui nous intéresse):
[bootstrap] Autoloadernamespaces[] = "Zend_" Autoloadernamespaces[] = "My_" appnamespace = "Application" includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/bootstrap/Bootstrap.php" bootstrap.class = "Bootstrap" resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.frontController.defaultmodule = "default" resources.frontController.params.prefixDefaultModule = true resources.frontController.plugins.ModuleSetup = "My_Controller_Plugin_ModuleSetup" resources.frontController.plugins.CurrentPartner = "My_Controller_Plugin_CurrentPartner" resources.view[] = resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts" resources.layout.layout = "main" resources.modules[] =
Mon Bootstrap général (Bootstrap/bootstrap.php) ne contient aucune ligne relative à l'autoloader, les bootstraps de mes modules non plus.
Que dois-je faire?
Merci pour votre aide.
P.S.: soit dit en passant, les plugins, eux, se chargent bien.
Dernière modification par danidan75 (20-02-2011 23:07:12)
Hors ligne
Bonjour,
Pour activer l'autoload dans les modules, il faut seulement mettre en place un bootstrap de module.
Prenons cette architecture qui est je pense la tienne :
/application /... /modules /core /models /... /bootstrap.php /admin /models /... /bootstrap.php /... /... bootstrap.php /...
Donc là tu vois un bootstrap tout en bas. Si tu as utilisé Zend_Tool, c'est celui qui est généré automatiquement.
Ensuite tu vois un bootstrap dans chaque module. Tu crées toi même ce fichier Bootstrap.php, et dedans tu mets un truc comme :
<?php class Core_Bootstrap extends Zend_Application_Module_Bootstrap { }
Bon celui là comme tu le vois est celui du module core, mais ça marche avec n'importe quel nom de module !
Hors ligne