Avec Zend Framework, lorsque l’on travail un projet conséquent il devient vite utile de travailler avec le mécanisme des modules. Celui-ci permet d’étendre pas mal de chose et surtout une séparation poussée en … module.
Le problème de ce mécanisme1 est qu’il faut définir le chemin pour le chargement automatique à l’aide de ceci :
$autoloader = new Zend_Application_Module_Autoloader(array( 'namespace' => 'SuperModule', 'basePath' => 'path to super module', )); |
Je vous propose donc de faire une petite amélioration afin que ce chargement soit fait automatiquement.
Avant tout, dans votre configuration (ici en .ini) vous devez au moins avoir ceci de présent :
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.modules = |
Ensuite, à la base de chaque dossier module créer un fichier Bootstrap.php2 :
<?php class SuperModule_Bootstrap extends Grummfy_Bootstrap{} # EOF |
Et pour finir créer le fichier3 library/Grummfy/Bootstrap.php
<?php abstract class Grummfy_Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initAutoload() { $className = get_class($this); $zf_namespace = explode('_', $className); $reflector = new ReflectionClass($className); $autoloader = new Zend_Application_Module_Autoloader(array( 'namespace' => $zf_namespace[0], 'basePath' => dirname($reflector->getFileName()), )); return $autoloader; } } # EOF |
Similar Posts:
- None Found