Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-07-2009 09:34:23

Myfred
Membre
Date d'inscription: 06-02-2009
Messages: 42
Site web

Distribution d'un objet sur l'application

Bonjour,
Débutant sous ZF, j'aimerai savoir comment faire pour distribuer un objet sur toute l'appli.
Je m'explique.
Dans mon cas, j'ai une appli mvc avec un layout. Le layout contient un pied de page qui fait donc appel
au sgbd.
Vous comprendrez que ce pied de page est présent dans tous les cas, sur toutes les pages, quel que soit l'action.
Seulement, je pense qu'il y a une technique pour ne pas réécrire le code dans chaque controller et dans chaque action, mais comment factoriser?
Pour l'instant je l'ai écris directement dans la vue, le problème c'est que c'est pas sa place surtout que je fais des try catch ect....

Quelqu'un pour m'éclairer ?

Merci d'avance

Dernière modification par Myfred (17-07-2009 09:35:11)

Hors ligne

 

#2 17-07-2009 10:17:22

EffigieCreations
Membre
Date d'inscription: 12-06-2009
Messages: 33
Site web

Re: Distribution d'un objet sur l'application

Bonjour,

Pour palier à ça j'ai étendu la classe Zend_Controller_Action et j'ai fait hériter tous mes controller de cette classe, ainsi je peux spécifier des variables disponible dans tous mes controllers :

Code:

class MyControllerAction extends Zend_Controller_Action
{
    public function preDispatch()
    {
        $this->view->module = $this->module = $this->_request->getModuleName();
        $this->view->controller = $this->controller = $this->_request->getControllerName();
        $this->view->action = $this->action = $this->_request->getActionName();
    }
}

// ...

class IndexController extends MyControllerAction
{
    // $this->action est disponible
}

Si a peut t'aider smile

Julien.

Hors ligne

 

#3 17-07-2009 10:38:42

Myfred
Membre
Date d'inscription: 06-02-2009
Messages: 42
Site web

Re: Distribution d'un objet sur l'application

Ah ouais c'est nikel, merci !

Hors ligne

 

#4 17-07-2009 10:48:48

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Distribution d'un objet sur l'application

Bizarre comme solution.

Le Zend_Registry permet de balader les objets ou l'on veut dans l'appli. (je réponds à la question la)

L'actionStack ou l'aide de vue 'action' sont de  bonnes solutions concernant la création du footer


----
Gruiiik !

Hors ligne

 

#5 17-07-2009 10:54:23

EffigieCreations
Membre
Date d'inscription: 12-06-2009
Messages: 33
Site web

Re: Distribution d'un objet sur l'application

Bonjour Norky,

Je n'avais pas pensé au Zend_Registry effectivement ! Par contre peux tu nous en dire un peu plus sur l'actionStack (que je ne connais pas) ou nous donner un lien si possible ?

Merci d'avance smile
Julien.

Hors ligne

 

#6 17-07-2009 13:49:38

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

Re: Distribution d'un objet sur l'application

heu avoir un pie de page qui fais appel à la base à chaque appel c'est peut être pas une bonne chose en soit

je ne sais pas ce que tu mets dans ton pied de page mais il est peut être plus logique d'utiliser la session pour ne pas avoir à accéder à la base à chaque fois
A+JYT

Hors ligne

 

#7 17-07-2009 13:52:39

Myfred
Membre
Date d'inscription: 06-02-2009
Messages: 42
Site web

Re: Distribution d'un objet sur l'application

oui biensur,
mais ya un cache apc dessus donc ca pose aucun problème.
Merci quand même.

Hors ligne

 

#8 17-07-2009 16:33:28

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Distribution d'un objet sur l'application

EffigieCreations a écrit:

Bonjour Norky,

Je n'avais pas pensé au Zend_Registry effectivement ! Par contre peux tu nous en dire un peu plus sur l'actionStack (que je ne connais pas) ou nous donner un lien si possible ?

Merci d'avance smile
Julien.

J'ai pas de lien, mais ca devrait se trouvé sur le net facilement je crois.

Grace à l'action stack, tu prévois l'éxécution à l'avance d'une 2eme action. Tu codes celle-ci pour quelle se mette dans un segment particulier (footer par exemple) et tu n'as plus qu'a mettre <?= $this->layout()->footer?> dans ton layou.phtml


----
Gruiiik !

Hors ligne

 

#9 20-07-2009 14:12:33

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

Re: Distribution d'un objet sur l'application

Une surcharge de Zend_Controller_Action::init(), utilisant le sgbd, couplé a un système de cache si besoin, initialisant une variable de vue (et un petit echo $this->variablePourFooter ou autre) dans le layout pourrait aussi faire l'affaire.

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