GetInstance d'une variable

Résolu
Signaler
Messages postés
88
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
7 novembre 2010
-
Messages postés
88
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
7 novembre 2010
-
Bonjours à tous, une fois de plus je me tourne vers vous afin de répondre à une question que je me pose dans le cadre d'un test singelton.

J'ai une classe serveur qui gère l'ensemble des fichiers inclus dans le site.

Elle contient la function suivante:

private static function RequireSingelton($Categorie, $ClassName) {

$Importation = CORE_CLASS.DS.$Categorie.DS.$ClassName.EXT_CLASS;

    if (file_exists($Importation)) {
require_once($Importation);
$Singelton = $ClassName::GetInstance();	
self::$ListeClass[$Categorie][$ClassName]= $Singelton;
return true;
} else {
 $AGPErreur=new AGPErreur; $AGPErreur->Handler(E_USER_ERROR, ERR_015.' : '. $ClassName, __FILE__, __LINE__,ERR_015);
}

}


Le problème vient de la ligne :
$Singelton = $ClassName::GetInstance();


En effet si j'ai $Singelton = Nom_de_la_class::GetInstance(); alors je n'ai pas de problème.

Est-il donc possible de récupérer l'instance d'une class par une variable? Il y a quelque chose qui m'échappe ;-(

Merci pour votre aide.

7 réponses

Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
19
$Singelton = eval($ClassName.'::GetInstance()');
Ca pourrait te convenir ??
Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
19
euh.. la réponse-réflexe. Tu as essayé un Eval ??
S.
Messages postés
88
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
7 novembre 2010

Tu as essayé un Eval ??


Est-ce que tu pourrais être un peu plus explicite, s'il te plait?

Merci
Messages postés
88
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
7 novembre 2010

Ok ca marche, mais avec une correction: Il faut un ; après le GetInstance():

$Singelton = eval($ClassName.'::GetInstance();
');

Super je vais pouvoir continuer. Merci beaucoup
Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
19
C'est cool.. n'oublie pas de cliquer sur Réponses Acceptée. Ca peut toujours aider.
S.
Messages postés
88
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
7 novembre 2010

Apres avoir continué le développement de mon site, je suis quand même confronter à un problème.

En effet, fonctionne pour l'importatntion mais pose problème car il n'exécute pas le code prévus dans le constructeur de la class.
Messages postés
88
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
7 novembre 2010

Normal le constructeur _Construct ne prend pas de majuscule.