Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Je bloque sur un aspect du MVC qui me semble un peu curieusement traité dans le ZF, mais cela tient sûrement à une méconnaissance du framework...
Bref, j'aimerais exploiter la gestion modulaire avec une arbo du type :
application/
blog/
controllers/
IndexController.php
models/
views/
default/
controllers/
IndexController.php
ArticleController.php
models/
views/
J'ai ici 2 modules, un par défaut + un module blog.
Dans le Bootstrap, voici comment je définis l'emplacement des controllers :
$controller->setControllerDirectory(array(
'default' => 'default/controllers',
'blog' => 'blog/controllers'
));
Pour les views, par contre, l'attribution des chemins est différente, en particulier parce que le dernier chemin indiqué a la priorité, comme par exemple ici :
$view = new Zend_View;
$view->addScriptPath('blog/views');
$view->addScriptPath('default/views');
=> si je demande http://www.domain.com/blog/index/ j'obtiens de toute façon le résultat généré par le contrôleur index du module "default", prioritaire car indiqué en dernier...
Suis-je assez clair
Auriez vous une idée pour lier l'emplacement du contrôleur appelé et celui des vues traitées dans le module concerné ?
Si j'appelle le controleur blog/controllers/indexController, j'aimerais que lorsque je lui demande echo $view->render('accueil.html'); il m'affiche blog/views/accueil.html !
Merci par avance !
Hors ligne
Bonjour,
Stop, c'est bon
J'ai résolu le problème du chemin des vues et des modèles par l'intermédiaire d'un plugin au contrôleur frontal, qui, en "preDispatch", récupère le module demandé et construit les différents chemins d'accès nécessaires.
Hors ligne
Salut Thomas,
Si tu utilises une structure modulaire, le plus simple consiste à utiliser la méthode addModuleDirectory de Zend_Controller_Front. Il suffit juste de spécifier le répertoire contenant les modules et Zend Framework se charge de détecter le reste. Par exemple, si tu as un répertoire "apps" et un sous-répertoire "modules" contenant les modules "default" et "blog", il suffit juste de faire :
$frontController->addModuleDirectory('chemin/vers/apps/modules');
Tu peux en savoir plus ici : http://framework.zend.com/manual/en/zen … dular.html
Hors ligne
Pages: 1