Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-01-2008 11:05:44

ichevc02
Membre
Date d'inscription: 25-07-2007
Messages: 127

Comment savoir si l'on vient d'un _forward() ?

Bonjour,

J'aimerai dans une action savoir si mon action est appelé depuis une autre action via _forward() ou non.

le code du _forward (ci dessous) dans le ZF modifie l'objet request.
donc je me demande si l'on peut savoir d'ou l'on vient ?

merci d'avance de vos lumières wink

Code:

final protected function _forward($action, $controller = null, $module = null, array $params = null)
    {
        $request = $this->getRequest();

        if (null !== $params) {
            $request->setParams($params);
        }

        if (null !== $controller) {
            $request->setControllerName($controller);

            // Module should only be reset if controller has been specified
            if (null !== $module) {
                $request->setModuleName($module);
            }
        }

        $request->setActionName($action)
                ->setDispatched(false);
    }

Hors ligne

 

#2 09-01-2008 11:20:14

Isilgawen
Membre
Lieu: Limoges
Date d'inscription: 23-03-2007
Messages: 106

Re: Comment savoir si l'on vient d'un _forward() ?

Tu peux utiliser l'argument $params pour passer un flag dans le pire des cas.

Hors ligne

 

#3 09-01-2008 11:23:31

ichevc02
Membre
Date d'inscription: 25-07-2007
Messages: 127

Re: Comment savoir si l'on vient d'un _forward() ?

vi j'y ai pensé, mais j'imaginais qu'il existait quelquechose dans le frontCrontroller ou l'objet request ....

Hors ligne

 

#4 09-01-2008 11:54:53

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: Comment savoir si l'on vient d'un _forward() ?

Actuellement, rien d'implémenté originellement pour ceci.
En revanche, un nouveau action helper va bientot faire son apparition, son nom est plus qu'explicite : actionStack.

Il sera ainsi possible d'empiler une suite d'actions dans ce plugin, qui vont se dérouler dans un ordre précis. Il y aura donc moyen de savoir où on en est dans la pile, ce qui est très pratique (dans le cas de grosses applications, ca va de soi ).

Je vais peut-être intégrer cette nouveauté dans mon prochain article, consacré à Zend_Layout (en cours d'écriture)

Hors ligne

 

#5 09-01-2008 14:20:48

ichevc02
Membre
Date d'inscription: 25-07-2007
Messages: 127

Re: Comment savoir si l'on vient d'un _forward() ?

re-bonjour

peut-on m'expliquer pourquoi _forward est declarée final ?

Je pensais redefinir _forward pour y ajouter mon flag mais la c'est impossible ...
je ne me vois pas repasser sur tout mes appel à _forward pour y ajouter un parametre ...

quel serait la meilleur solution pour mettre mon flag sans le passer  à chaque appel du _forward ? dans le predispatch ?

Hors ligne

 

#6 09-01-2008 14:23:45

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Comment savoir si l'on vient d'un _forward() ?

A la limite utilise Zend_Registry...

Hors ligne

 

#7 09-01-2008 16:52:09

ichevc02
Membre
Date d'inscription: 25-07-2007
Messages: 127

Re: Comment savoir si l'on vient d'un _forward() ?

pour la petite histoire:

finalement je stocke dans le registry les valeurs des module, controleur, action, dans le preDispatch
puis dans le postDispatch je verifie si elle ont changées si oui -> j'ai fait un _forward .
ca me permet de stocker dans un tableau la "chaine de mes actions".

Dernière modification par ichevc02 (09-01-2008 16:52:33)

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