Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-10-2010 03:37:52

débutant-z
Membre
Date d'inscription: 11-10-2010
Messages: 10

Question sur la structure du projet

Salut, je débute avec Zend et je me demandais ceci:
où dois-je placer le code pour une variable qui être disponible pour tout le layout? Je veux avoir la date du jour formatté ainsi: 10 octobre 2010. Dans le Bootstrap? Si oui, comment je l'initialise. Tous les exemples de bootstrap que je trouve ne parle que d'initialisation du view. À quel moment dans le cycle d'execution une tel variable s'initialise-t-elle?

Merci.

Hors ligne

 

#2 14-10-2010 23:32:13

débutant-z
Membre
Date d'inscription: 11-10-2010
Messages: 10

Re: Question sur la structure du projet

Salut, je me questionne beaucoup sur la structure d'une application avec Zend et je voulais savoir si cette façon de faire était conforme. J'ai des variables, dont j'ai besoin qu'elles aient une portée du header au footer. J'ai créé pour cela un controller parent dont je fais hériter tous mes controllers. Dans la function init du parent, j'initialise les variables en question. Bref, au-lieu de les initialiser dans chaque controllers, je le fais qu'une seul fois. Selon moi, c'est la seul façon logique de faire. En existe-t-il une autre plus conforme?

Merci de prendre le temps de me répondre.

Hors ligne

 

#3 15-10-2010 09:12:58

Blount
Membre
Date d'inscription: 23-06-2009
Messages: 98
Site web

Re: Question sur la structure du projet

Pour ma part, je me sert des plugins.
Dans mes projets, j'ai besoin de récupérer dans les vues (dont le layout), le module, controller et action demandé ET en cours.
Ce qui donne ce plugin :

Code:

<?php
class Plugin_Setup extends Zend_Controller_Plugin_Abstract
{
    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        $layout = Zend_Layout::getMvcInstance();
        $view = $layout->getView();
        
        $view->currentModule = $request->getModuleName();
        $view->currentController = $request->getControllerName();
        $view->currentAction = $request->getActionName();
    }

    public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
    {
        $view = Zend_Layout::getMvcInstance()->getView();
        $view->requestModule = $request->getModuleName();
        $view->requestController = $request->getControllerName();
        $view->requestAction = $request->getActionName();
    }
}

Ensuite, dans ton Bootsrap, tu ajoutes le plugin

Code:

$frontController->registerPlugin(new Plugin_Setup());

Tu peux remarquer qu'il y a deux sortes de variable, les request* et current*.
En fait, les request correspondent aux module, controller, et action demandée réellement (dans l'adresse). Les current eux, sont là pour le module, controller, et action en cours d'exécution.

Par exemple, dans un menu, on a souvent besoin de mettre en avant l'élément actif. Mais si la page demandée est une page requirent l'identification, alors je forward vers un controller et une action différents. Les request permettent de garder une trace des module, controller et action demandés.

J'espère avoir été assez clair.

Dernière modification par Blount (15-10-2010 09:13:35)

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