Autoloader entre controller de modules differents
Bonjour.
Mon application a 3 modules. Sur certaines fonctionnalités, ils sont très semblables. Du coup, j'en ai créé un 4e, sobrement appelé default.
Le principe serait que dans chaque module, certains controllers étendent ceux du module default, afin de ne pas dupliquer le code.
Ex:
Code:
class Sports_BlocController extends Default_BlocController
dans le fichier application/modules/sports/controllers/BlocController.php
Pb: l'autoloading sur le Default_BlocController ne se fait pas.
configuration de mon application (n'est copiée que la partie relative à mon pb):
application/config/main.ini
Code:
1 2 3 4
| Autoloadernamespaces[] = "Zend_"
Autoloadernamespaces[] = "My_"
bootstrap.path = APPLICATION_PATH "/bootstrap/Bootstrap.php"
resources.modules[]= |
application/bootstrap/Bootstrap.php
Code:
1 2 3 4 5 6 7 8 9
| protected function _initDefaultModuleAutoloader() {
$this->_resourceLoader = new Zend_Application_Module_Autoloader(
array(
'namespace' => 'Default',
'basePath' => APPLICATION_PATH.'/modules/default'
)
);
return $this->_resourceLoader;
} |
application/modules/default/Bootstrap.php
Code:
1 2 3
| class Default_Bootstrap extends Zend_Application_Module_Bootstrap
{
} |
application/modules/sports/Bootstrap.php
Code:
1 2 3
| class Sports_Bootstrap extends Zend_Application_Module_Bootstrap
{
} |
Merci d'avance pour votre aide.
Créer un controller commun dans ta propre librairie
@danidan75,
Je te conseil de créer un autre controller commun dans le répertoire "My" et que lui hérite de Zend_Controller_Action.
Ce controller contiendra les fonctions communes et tu fais hériter tes controllers dans tes modules de ce dernier.
Qu'est-ce que tu en pense ?