|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 144 ![]() |
Bonsoir à vous !
Alors, je viens vous voir car j'ai quelques difficultés avec un singleton ( bien que je pense en avoir saisi le concept de base ). Je souhaite entamer un projet, mais afin de décider quelle architecture employer, pour faire quelque chose qui sera évolutif au possible, à travers des systèmes de plugins une bdd sql, j'ai décidé de faire quelques tests, parce que c'est l'un de mes premiers projets qui nécessite des choses du genre, et c'est donc la première fois que j'utilise un singleton. Ainsi voilà mon problème, j'obtiens l'erreur Citation:
Code :
$CityHandler = cityHandler::getInstance(); Code :
Seulement, il serait pratique que l'objet bank ( et tout autre building, d'ailleurs ), puisse appeler des méthodes de l'objet city qui le contient, or, c'est ce que je souhaitais faire avec le CityHandler, mais ça ne semble pas être une bonne idée. Donc, finalement, je me demande si c'est une erreur de conception fondamentale et s'il y a une autre solution pour faire ce que je veux faire ( voir éventuellement des schémas à suivre, qui permettent de faire ça efficacement. ) Merci, Cordialement, MegaBigBoss |
|||
|
|
00
|
|
|
#2 | ||||||
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
retourne ton instance,
Code :
Code :
Code :
__________________
http://blog.stealth35.com/ |
||||||
|
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 144 ![]() |
J'ai modifié ma fonction getInstance() de façon à ce qu'elle retourne l'instance, et j'ai mis mes variables au format PHP5, seulement, j'ai toujours le même problème d'appel infini.
La fonction __construct() ne devrait-elle pas être appelée uniquement lorsque "new self" est crée, soit une seule fois, étant donné que c'est un singleton ? Voici la fonction modifiée : Code :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
si, tu dois avoir au autre problème quelque part
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 144 ![]() |
Je pense que ça vient du fait que le cityHandler contient un objet city, qui contient un objet bank, qui essaye d'appeller le cityHandler::getInstance(), qui comme il n'a pas fini de se déclarer est considéré comme null et se redéclare peut être ?
Est-ce possible ? |
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
non, montre tout ton code
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#7 | ||
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 144 ![]() |
C'est déjà fait. Mon index.php ne contient que :
Code :
Code :
$this->cityHandler = cityHandler::getInstance(); |
||
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
si tu commentes la ligne 65 ça donne quoi ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 144 ![]() |
Si je la commente, ça fonctionne, mais c'est parce que la methode load crée un objet de type bank, qui lorsqu'il est crée execute ce code :
Code :
$this->cityHandler = cityHandler::getInstance(); |
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
non c'est bon , c'est la ligne 31 le problème
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#11 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 144 ![]() |
Oui, mais j'aimerais pouvoir utiliser mon objet cityHandler dans mes classes dérivées de building. Est-ce possible ?
|
|
|
00
|
|
|
#12 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
même c'est bizarre, il devrait récupérer l'instance
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#13 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 144 ![]() |
Et pourtant
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com