Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-04-2010 11:08:05

GueloSuperStar
Membre
Lieu: Paris
Date d'inscription: 05-08-2009
Messages: 107

Zend_Controller_Plugin_Abstract

Bonjour les zenders's

Voila mon pti problème en soit mais qui me cause de gros problèmes....


- j'ai une action quel conque IndexAction dans mon controller IndexController.

- Dans cette action j'ai un variable $this->view->maVariable = "mon contenu"

- Dans ma vue index.phtml je la retrouve avec $this->maVariable

Jusqu'à la on va dire pas de problème.

J'ai créé un plugin  dans library/App/Plugin qui fonctionne bien il n'y a aucun souci avec (je crois)

Dans ce plugin et dans la méthode

Code:

public function postDispatch(Zend_Controller_Request_Abstract $request)

je veux modifier ma variable de vue $this->view->maVariable


Donc pour récupérer ma "view" je fais soit

Code:

$frontController = Zend_Controller_Front::getInstance();
view = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');

ou soit

Code:

$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$view = $viewRenderer->view;

Donc jusqu'ici pas de problème

et donc tout naturellement je me dit pour réaffecter ma variable j'ai juste à faire :

Code:

$view->maVariable = "mon nouveau contenu";

mais cela ne fonctionne pas car dans ma view index.phtml j'ai tout dans ma variable maVariable "mon contenu"

Voila un peu l'exposé de mon problème,bug,erreur..... je ne sais pas

Si vous voulez plus d'info pour m'aider ou me donner quelque piste hésité pas à ma demander


A+ Guelo Super Star

Hors ligne

 

#2 20-04-2010 11:42:53

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Zend_Controller_Plugin_Abstract

Heu le post dispatch ne vient pas après le render ??
A+JYT

Hors ligne

 

#3 20-04-2010 12:22:22

Geoffrey
Membre
Lieu: 63
Date d'inscription: 12-04-2007
Messages: 140
Site web

Re: Zend_Controller_Plugin_Abstract

Il me semble aussi qu'un preDispatch serait plus approprié au postDispatch

Hors ligne

 

#4 20-04-2010 12:22:55

GueloSuperStar
Membre
Lieu: Paris
Date d'inscription: 05-08-2009
Messages: 107

Re: Zend_Controller_Plugin_Abstract

postDispatch() est appelée après qu'une action n'ait été distribuée

Donc après que l'action soit exécutée mais je sais pas si c'est avant ou après le render.

Mais dans mon controller j'ai un méthode postDispatch ou je défini des variables qui sont accessibles dans la vue.....

Je me dit que le postDispatch d'un plugin agit juste après celui du controller et donc permet de redéfinir des variables nan?


A+ Guelo Super Star

Hors ligne

 

#5 20-04-2010 14:12:58

GueloSuperStar
Membre
Lieu: Paris
Date d'inscription: 05-08-2009
Messages: 107

Re: Zend_Controller_Plugin_Abstract

@Geoffrey

Je ne peux pas faire en preDispatch dans le plugin sinon je n'aurais pas les variables créées dans l'action.


A+ Guelo Super Star

Hors ligne

 

#6 10-05-2010 11:05:42

GueloSuperStar
Membre
Lieu: Paris
Date d'inscription: 05-08-2009
Messages: 107

Re: Zend_Controller_Plugin_Abstract

Normalement le schéma n'est pas comme sa :

preDispatch (controller) + preDispatch (plugin)

Action

postDispatch (controller) + postDispatch(plugin)

=> View

<_>


A+ Guelo Super Star

Hors ligne

 

#7 10-05-2010 12:38:14

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Zend_Controller_Plugin_Abstract

Hello,

Non, le plugin interviens autour du process de dispatch des controlleurs d'action.

http://nethands.de/download/zenddispatch_en.pdf
http://www.slideshare.net/polleywong/ze … h-workflow

Donc c'est (en virant une partie du process) :

Plugin : preDispatch
    Action Helpers : preDispatch
       Action Controller : preDispatch
       Action Controller : postDispath
    Action Helpers : postDispatch
Plugin : postDispatch


Pour ta variable je pense que la vue est automatiquement rendue dans le buffer après le process de dispatch des controlleurs d'action, à vérifier.


A+ benjamin.

Dernière modification par Delprog (10-05-2010 12:38:38)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#8 19-05-2011 16:13:10

GueloSuperStar
Membre
Lieu: Paris
Date d'inscription: 05-08-2009
Messages: 107

Re: Zend_Controller_Plugin_Abstract

Ah oui je comprend ce que tu veux dire.

Par rapport à ça comment je pourrais faire pour modifier ma variable et la passer à la vue?

Il faut que je fasse un nouveau render, si oui comment je pourrais faire?

Merci pour vos réponse


A+ Guelo Super Star

Hors ligne

 

#9 19-05-2011 16:49:37

GueloSuperStar
Membre
Lieu: Paris
Date d'inscription: 05-08-2009
Messages: 107

Re: Zend_Controller_Plugin_Abstract

Alors voilà comment j'ai fait :


Code:

class App_Plugin_MyPlugin extends Zend_Controller_Plugin_Abstract{


public function preDispatch (Zend_Controller_Request_Abstract $request){
    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
    $viewRenderer->setNeverRender(true);
}

public function postDispatch(Zend_Controller_Request_Abstract $request){
   $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
   $view = $viewRenderer->view;
   $view->mavariable = 'new value';
   $viewRenderer->render();

}

}

J'aimerais savoir si c'est la bonne façon de faire.

Merci pour vos réponse


A+ Guelo Super Star

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