Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-01-2012 17:19:33

ALkyD
Membre
Lieu: Limoges
Date d'inscription: 11-07-2007
Messages: 69
Site web

[ZF 1.11] Contrôleurs dynamiques ?

Bonjour,

Je dispose d'un site en MVC de tout ce qui y a de classique, avec l'arborescence suivante :

Code:

/
-- application/
---- admin/
------ IndexController.php
------ NewsController.php
------ ...
---- default/
------ IndexController.php
------ ...
-- view/
---- admin/
------ index/
-------- index.phtml
-------- afficher.phtml
------ news/
-------- index.phtml
------ ...
---- default/
------ index/
-------- index.phtml
------ ...

Le système MVC est implanté et tout est fonctionnel. Je cherche à intégrer un système de plugins (rien à voir avec les plugins MVC) permettant d'ajouter des fonctionnalités sur le site. Pour ce faire, j'essaye de faire en sorte que l'ajout d'un plugin puisse modifier le site de façon totalement dynamique : ajout d'un formulaire d'ajout/édition dans le backoffice, ajout des pages correspondantes sur le site public, etc., sans ajouter manuellement du code dans le site de base.

Là où je coince, c'est pour "fusionner" les contrôleurs du plugin avec ceux déjà existant du site pour un même module.

Par exemple, pour un plugin "article", je veux créer l'arborescence suivante (calquée sur celle du site) :

Code:

-- plugins/
---- article/
------ application/
-------- admin/
---------- ArticleController.php
-------- default/
---------- ArticleController.php
------ view/
-------- admin/
---------- article/
------------ index.phtml
-------- default/
---------- article/
------------ index.phtml
...

Mon but est de mettre plusieurs chemins de contrôleurs pour les modules "admin" et "default". J'ai regardé du côté de Zend_Controller_Front dans le bootstrap mais c'est visiblement impossible de faire de la sorte :

Code:

$this->_front->setControllerDirectory(array(
    'default' => array(
           $this->_root . '/application/default',
           $this->_root . '/plugins/article/application/default'
    ),
    'admin' => array(
           $this->_root . '/application/admin',
           $this->_root . '/plugins/article/application/admin'
    )
));

Une idée ?

Merci wink

Dernière modification par ALkyD (10-01-2012 17:27:07)

Hors ligne

 

#2 10-01-2012 18:39:07

Roromix
Membre
Date d'inscription: 05-12-2011
Messages: 55

Re: [ZF 1.11] Contrôleurs dynamiques ?

Essai en rajoutant ceci avant:

Code:

$this->_front->setBaseUrl('/');

Hors ligne

 

#3 10-01-2012 22:56:02

ALkyD
Membre
Lieu: Limoges
Date d'inscription: 11-07-2007
Messages: 69
Site web

Re: [ZF 1.11] Contrôleurs dynamiques ?

J'ai essayé, sans succès...

Hors ligne

 

#4 17-01-2012 18:11:41

ALkyD
Membre
Lieu: Limoges
Date d'inscription: 11-07-2007
Messages: 69
Site web

Re: [ZF 1.11] Contrôleurs dynamiques ?

J'ai fini par trouver une solution assez viable : j'ai créé une classe qui hérite du dispatcher Zend_Controller_Dispatcher_Standard, en surchargeant les méthodes isDispatchable et loadClass, qui s'occupent de gérer les chemins et les classes des contrôleurs.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages