Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-09-2010 12:23:28

guence
Membre
Date d'inscription: 11-06-2007
Messages: 15

[résolu] ZF1.10.8 bootstrap : la fonction _initController

Bonjour à tous,
Sur presque l'ensemble de mes controllers, je récupère l'année sélectionnée ou l'année qui se trouve dans ma session dans le cas ou 'internaute n'a pas sélectionné une année. Afin d’optimiser mon code, je veux utiliser le bout de code dans mon _initController du Bootstrap comme suit:

Code:

       protected function _initController(){
        $this->bootstrap('FrontController');
        $controller = $this->getResource('FrontController');        
        $info = new Zend_Session_Namespace('test');

        $controller->view->anneeEncours = trim($controller->getParam("encours"));
        if (!empty($controller->view->anneeEncours)){            
            $info->array = array(
                'annee' => $controller->view->anneeEncours
            );
        } else {
            $tabInfo = $info->array;
            $controller->view->anneeEncours = $tabInfo['annee'];
        }
    }

Ca ne marche pas mais pas d'erreur non plus. Je souhaite que celui qui voit comment résoudre puisse m'apporter son aide. Sans doute $controller->view->anneeEncours doit pas être la bonne.
Merci d'avance!

Dernière modification par guence (08-09-2010 15:07:51)


Plus tu regardes le ciel, plus tu y pense cool

Hors ligne

 

#2 08-09-2010 14:10:10

Manax
Nouveau membre
Date d'inscription: 24-08-2010
Messages: 4

Re: [résolu] ZF1.10.8 bootstrap : la fonction _initController

Le bootstrap est initialisé avant que le trio module/contrôleur/action ne soit connu donc tu ne peux pas leur passer de valeurs vu qu'ils n'existent pas encore.

Une solution serait de stocker le résultat dans un Zend_registry puis récupérer la valeur la ou t'en a besoin.

Dernière modification par Manax (08-09-2010 14:11:53)

Hors ligne

 

#3 08-09-2010 14:50:03

My_Sic
Membre
Date d'inscription: 06-09-2010
Messages: 49
Site web

Re: [résolu] ZF1.10.8 bootstrap : la fonction _initController

Une autre solution qui n'utilise pas le Zend_Registry, est de passer par un action helper et d'utiliser une fonction preDispatch().

Au sein de cette fonction tu va récupérer ton année et l'ajouter à la vue et/ou au paramètre transmis à ton controller.

Code:

class MonModule_Controller_Action_Helper_Anne extends Zend_Controller_Action_Helper_Abstract
{
    protected function preDispatch() {
        $controller = $this->getActionController();
        $info = new Zend_Session_Namespace('test');

        $controller->view->anneeEncours = trim($controller->getParam("encours"));
        if (!empty($controller->view->anneeEncours)){            
            $info->array = array(
                'annee' => $controller->view->anneeEncours
            );
        } else {
            $tabInfo = $info->array;
            $controller->view->anneeEncours = $tabInfo['annee'];
        }
    }
}

et dans ton Bootstrap :

Code:

protected function _initHelper()
    {
        $this->bootstrap('FrontController');
        Zend_Controller_Action_HelperBroker::addHelper(new Cms_Controller_Action_Helper_Current());
    }

http://www.centurion-project.org: Full stack Framework based on Zend Framework; led by:
http://www.octaveoctave.com: an enthusiastic web agency full of passionate.
http://www.cache-pistache.com: French blog on ZF and SF perfomance

Hors ligne

 

#4 08-09-2010 15:06:58

guence
Membre
Date d'inscription: 11-06-2007
Messages: 15

Re: [résolu] ZF1.10.8 bootstrap : la fonction _initController

Merci pour vos suggestions. Je pense que la solution est trouvée grâce à vous. je verrai parmi les deux propositions laquelle implémenté.
Encore mille merci big_smile


Plus tu regardes le ciel, plus tu y pense cool

Hors ligne

 

#5 08-09-2010 19:13:03

guence
Membre
Date d'inscription: 11-06-2007
Messages: 15

Re: [résolu] ZF1.10.8 bootstrap : la fonction _initController

C'est fait.
J'ai implémenté la solution avec l'aide d'action. C'est ce que je voulais et ça marche nikel!!!!

Mille merci à My_Sic et à Manax.


Plus tu regardes le ciel, plus tu y pense cool

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