Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour
J'essai d'utiliser Zend_Registry mais je n'arrive pas à obtenir ce que je veux. Après avoir étudié plusieurs tutos et plusieurs exemples, j'ai cru comprendre que l'utilisation de Zend_Registry fonctionne de la façon suivante:
1) Je fais un
require_once 'Zend/Registry.php';
dans mon index.php
2) Dans mes controlleurs, j'utilise
Zend_Registry::set('clé',$valeur);
et
Zend_Registry::get('clé');
Mais là ça marche pas... quand je fais mon get Zend me dit que l'index recherché n'existe pas alors qu'il est rempli...
Pour être plus précise voici exactement le test que j'ai fait :
function indexAction(){ $nomAction = ....; Zend_Registry::set('hiddenPage',$nomAction); $hiddenPage = Zend_Registry::get('hiddenPage'); echo $hiddenPage; /*ici ça marche*/ } function autreAction(){ Zend_Registry::get('hiddenPage'); /*pan, exception : hiddenPage n'est pas dans le registre*/ echo $hiddenPage; }
Du coup, dans la page index j'arrive à récupérer ma clé hiddenPage mais pas dans ma page autre...
J'ai cru comprendre dans une des discutions du forum (http://www.z-f.fr/forum/viewtopic.php?id=2646) que c'est normal que Zend Registry ne garde pas les variables d'une page à une autre. Dans ce cas, je ne comprend pas quel est le rôle de ce composant???
PS : Je ne suis pas très douée en php (ma première ligne de code en php date d'il y a moins d'un mois) donc merci de m'excuser si ma question est vraiment stupide...
Merci en tout cas pour votre aide!
Hors ligne
Zend registry ne sert pas a ca. Il sert a mettre des variables (tableaux, objets) de coté, pour les réutiliser plus loin dans ton application. Mais en aucun cas il ne peut te servir a faire passer des variables d'une page à une autre. C'est un peu une alternative à la fonction global.
Si tu veux passer des variables d'une page à l'autre, tu peux utiliser soit les sessions, soit une base de données, soit des system de cache comme memcached...
Dernière modification par lyrix (10-08-2010 14:16:37)
Hors ligne