Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour et bonne année à tous
Voilà, je suis en train de regarder comment utiliser des aides de vues...
J'en ai déjà réalisés quelques unes communes que j'ai mis dans mon dossier "library".
du genre la classique :
<?php class Kaimite_View_Helper_BaseUrl { function baseUrl () { $frontController = Zend_Controller_Front::getInstance(); return $frontController -> getBaseUrl(); } }
en ajoutant dans mon bootStrap :
$view -> addHelperPath(KAIMITE_LIBRARY_DIR . '/View/Helper', 'Kaimite_View_Helper');
Le truc c'est que je développe mon site avec des modules uniquement.
J'ai donc un module "rubrique".
Si je veux lui definir des aides de vues je vais devoir les déclarer dans mon bootstrap :
$view -> addHelperPath(MODULES_DIR . '/rubrique/views/helpers', 'Rubrique');
et créer mon aide de la façon suivante :
class Rubrique_MenuPrincipal { function menuPrincipal () { ... return "..."; } }
Comme je souhaite ne pas trop modifier mon bootstrap à chaque site pensez-vous qu'il soit gênant de faire un truc du genre pour automatiser les définitions de mes helpers :
//--> Ajout des aides des modules $listeModules = scandir(MODULES_DIR); foreach ( $listeModules AS $unModule ) { $view -> addHelperPath(MODULES_DIR . '/' . $unModule . '/views/helpers', ucfirst($unModule)); }
Merci d'avance pour vos réponse
Cordialement,
Kaimite
Hors ligne
Si tu as besoin dans un module des helpers d'autres modules, pourquoi ne pas les déclarer à la racine de ton projet, donc dans KAIMITE_LIBRARY_DIR ?
Sinon, tu peux charger les helpers du module courant uniquement, après le dispatch tu peux récupérer le nom du module avec une méthode de l'objet de requête qui doit être getModuleName() ou qqch comme ça.
Hors ligne
Salut et merci pour la réponse.
Logiquement, en faisant comme ça, je peux acceder à n'importe quel helper depuis n'importe quelle vue. D'ailleurs j'utilise dans mon layout le helper Rubrique_MenuPrincipal() directement en faisant un :
echo $this -> menuPrincipal();
Je souhaite les garder dans le répertoire du module car si j'ai besoin de réutiliser mon module sur un autre site je' n'ai que le dossier du module à copier sans chercher d'autres fichiers ailleurs...
J'ai d'ailleurs certains modules qui seront communs à pratiquement tous les sites :
- rubrique
- administrateur
- page
- article
Cordialement,
Kaimite
Hors ligne