Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Autres composants
Autres composants Forum de support sur les autres composants de Zend Framework.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/12/2006, 02h54   #1
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 63
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 63
Points : 28
Points : 28
Par défaut [Registry] Modification d'un objet dans le registre

Salut tout le monde,
j'arrive pas à modifier les valeurs d'un objet dans le registre.
Dans une action d'un controlleur j'ai ce code:
Code :
1
2
3
 
$user=Zend::registry('user');
$user->name='verboz';
Quand j'acccéde dans un autre controlleur à cet objet user que j'ai mis dans le registre et je veux lire $user->name je trouve aucune donnée.
C'est quoi le problème?

Cordialement Verboz
Verboz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2006, 18h52   #2
Candidat au titre de Membre du Club
 
Inscription : février 2003
Messages : 18
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 18
Points : 11
Points : 11
Tu dois enregistrer ton objet comme cela :

Code :
1
2
3
4
 
$user = new TonObjet;
$user->name='verboz';
Zend::register('user',$user);
Et dans tes controlleurs recuperer grâce à :

Code :
1
2
3
 
$user=Zend::registry('user');
echo $user->name
krull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2006, 22h17   #3
Membre actif
 
Inscription : décembre 2002
Messages : 325
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : décembre 2002
Messages : 325
Points : 187
Points : 187
Citation:
Envoyé par krull
Tu dois enregistrer ton objet comme cela :

Code :
1
2
3
4
 
$user = new TonObjet;
$user->name='verboz';
Zend::register('user',$user);
Et dans tes controlleurs recuperer grâce à :

Code :
1
2
3
 
$user=Zend::registry('user');
echo $user->name
Je crois que ce qu'il souhaite faire, c'est créer un objet, le placer dans le registre, l'extraire et ensuite pouvoir le modifier et que la modification soit effective sur l'objet enregistré. C'est à dire qu'il voudrait pouvoir "extraire" l'objet du registre et retrouver la modification.

le code
Code :
1
2
3
4
5
6
7
$objet = new Objet();
$objet->name = "maurice";
Zend::register('monObjet', $objet);
$ref = Zend::registry('monObjet');
$ref->name = "jeannot";
// la ligne suivante devrait afficher "jeannot"
echo Zend::registry('monObjet')->name;
J'ai fais le long tour volontairement.

Ce code (adapté) devrait marcher en java.

D'après ce que Verboz dit, c'est comme si Zend::registry() retournait une copie de l'objet stocké.

D'ailleurs je n'ai même pas fait de test... demain j'essaye.
sir_gcc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2006, 21h22   #4
Rédacteur
 
Avatar de doctorrock
 
Homme Julien Pauli
Architecte de système d'information
Inscription : mai 2006
Messages : 597
Détails du profil
Informations personnelles :
Nom : Homme Julien Pauli
Âge : 29
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : mai 2006
Messages : 597
Points : 5 015
Points : 5 015
Code :
1
2
3
4
5
6
7
$objet = new Objet();
$objet->name = "maurice";
Zend::register('monObjet', $objet);
$ref = Zend::registry('monObjet');
$ref->name = "jeannot";
// la ligne suivante retourne "jeannot"
echo Zend::registry('monObjet')->name;
Retourne bien 'jeannot'. (Selon les règles de PHP5), le registre agit par référence (=) et non par copie (clone).
doctorrock est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h36.


 
 
 
 
Partenaires

Hébergement Web