IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Objet dans objet sans le copier


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 8
    Par défaut Objet dans objet sans le copier
    Bonjour,

    Ma question est simple, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class Objet1 {
    public $var1;
    public $var2;
    }
     
    class Objet2 {
    public $var1;
    public $var2;
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?
    $_SESSION['objet1'] = new Objet1();
    $_SESSION['objet2'] = new Objet2();
    ?>
    Je voudrais que la variable $var2 de Objet1 pointe vers Objet2, soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?
    $_SESSION['objet1']->var2 = $_SESSION['objet2'];
    ?>
    MAIS je ne veux pas qu'il le copie dedans, car sinon en session j'ai 2 fois Objet2 de stocké, dans $_SESSION['objet1'] et dans $_SESSION['objet1']->var2.

    Je ne sais pas si cela est possible, merci de m'éclairer sur ce sujet.

  2. #2
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Mettre les objets directement en session est inutile puisqu'il faudra les sérialiser.
    De plus, et c'est un avis personnel, c'est un peu se compliqué la vie que de manipuler des variables de session à ce point. Passer par des variables intermédiaires à un coût négligeable sur les perfs et formidable sur la lisibilité du code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $myObj1 = new Objet1();
    $myObj2 = new Objet2();
     
    // les objets sont passés par référence, donc pour l'instant ça le fait
    $myObj1->var1 = $myObj2;
     
    // je continue à bidouiller mon code ici
     
    $_SESSION['o1'] = serialize($myObj1);
    $_SESSION['o2'] = serialize($myObj2);

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 8
    Par défaut
    Merci pour votre réponse.

    En faite, je vous ai simplifier le problème en mettant le minimum.

    Le cas est que j'ai besoin d'avoir ses 2 objets en session et que cela n'est pas une option (je veux entendre par là que c'est le système en place et que je ne peux le changer).

  4. #4
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Bonjour,

    Avec le code fourni plus haut, les deux objets sont bien en session, mais je préfère les manipuler par des variables intermédiaires dans le script.

    Le principe général :

    Premier passage :
    • Je créée mes objets
    • Je les manipule
    • Je les stocke en session


    Autres passages :
    • Je récupère mes objets à partir des variables de session
    • Je les manipule
    • Je les stocke en session avec leur nouvel état

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 8
    Par défaut
    En faite ma problématique est que l'objet2 ne se sert pas forcément de l'objet1 de la session, il peut également utiliser un autre objet de type objet1 passé en paramètre.

    Mais dans le cas où il utiliserais celui de la session, je ne veux pas qu'il stocke l'objet1 dans var2, mais plutôt qu'il y face référence (dans le cas où il est passé en paramètre il est stocker cela est normale, en plus de celui qui existe en session car ils sont différents).

    Je n'arrive pas à expliquer mon problème, je ne sais pas si je suis très clair.

  6. #6
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Au final, es-tu bien sûr que tu ais besoin de l'avoir en référence ?
    Ne serait-il pas aussi simple de le passer en paramètre des méthodes qui doivent l'utiliser ?

Discussions similaires

  1. Un objet dans objet, mais comment l'atteindre ?
    Par JamesTridas dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/05/2015, 10h37
  2. Lire int dans objets dans ArrayList.
    Par astran dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 03/04/2013, 21h22
  3. Objet dans Objet instancié via BDD
    Par Kurapika-shinji dans le forum C#
    Réponses: 7
    Dernier message: 10/08/2011, 16h44
  4. Ajout d'objets dans objets insérables
    Par NicolaTesla dans le forum Cognos
    Réponses: 1
    Dernier message: 05/05/2009, 17h49
  5. Property grid objet dans objet
    Par Thesum dans le forum VB.NET
    Réponses: 2
    Dernier message: 18/03/2009, 09h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo