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 :

[POO] Détruire une instance d'une classe (singleton) et la réinstancier


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut [POO] Détruire une instance d'une classe (singleton) et la réinstancier
    Bonjour,

    Je possède une classe X qui est instanciée avec un singleton, j'utilise cette instance à partir de nombreuses autres classes.

    Me pose un problème, c'est que je possède également plusieurs classes destinées à gérer les erreurs héritant d'Exception.

    Mon problème est que dans ces classes, je souhaite pouvoir détruire l'instance de X et pouvoir la réinstancier, ce que je n'arrive pas à faire.

    Est-ce possible ?

  2. #2
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut
    si tu as par exemple $singleton = monSingleton;
    ne pourrais-tu pas utiliser unset ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    unset($singleton);
    $singleton = monSingleton;
    c'est une piste à explorer
    Pour voir qu'il fait noir, on n'a pas besoin d'être une lumière

  3. #3
    Membre régulier Avatar de raoulchatigre
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2004
    Messages : 99
    Points : 87
    Points
    87
    Par défaut
    Je plussois : tu peux sans doute utiliser une méthode statique dans cet esprit :
    Si c'est bien un singleton, tu devrais avoir une méthode getinstance ou équivalente qui soit te crée une instance si aucune n'est dispo, soit te fourni l'instance déjà existante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class X {
    //[...]
    public static function reload()
    {
        iX = self::getSingleton();
        unset(iX);
        self::getSingleton();
    }
     
    //[...]
    }
    J'ai un gros doute si je suis pas en train de mélanger Singleton et Factory...

Discussions similaires

  1. Utiliser une méthode d'une instance, dans une callback
    Par qdaemon_fr dans le forum Langage
    Réponses: 3
    Dernier message: 18/04/2014, 18h09
  2. [ATL] Utiliser une instance d'une règle dans une autre règle
    Par sacha33 dans le forum Eclipse Modeling
    Réponses: 0
    Dernier message: 02/06/2013, 23h41
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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