GetInstance d'une variable

Résolu
agparchitecture Messages postés 88 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 7 novembre 2010 - 24 sept. 2009 à 11:02
agparchitecture Messages postés 88 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 7 novembre 2010 - 7 nov. 2009 à 15:51
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

syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
24 sept. 2009 à 16:33
$Singelton = eval($ClassName.'::GetInstance()');
Ca pourrait te convenir ??
3
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
24 sept. 2009 à 13:22
euh.. la réponse-réflexe. Tu as essayé un Eval ??
S.
0
agparchitecture Messages postés 88 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 7 novembre 2010
24 sept. 2009 à 16:14
Tu as essayé un Eval ??


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

Merci
0
agparchitecture Messages postés 88 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 7 novembre 2010
24 sept. 2009 à 18:21
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
24 sept. 2009 à 19:05
C'est cool.. n'oublie pas de cliquer sur Réponses Acceptée. Ca peut toujours aider.
S.
0
agparchitecture Messages postés 88 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 7 novembre 2010
7 nov. 2009 à 13:09
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.
0
agparchitecture Messages postés 88 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 7 novembre 2010
7 nov. 2009 à 15:51
Normal le constructeur _Construct ne prend pas de majuscule.
0
Rejoignez-nous