Probleem met Singleton class
Voor mijn website heb ik een User-class en een Member-class. De User-class wordt gebruikt om informatie over een bepaalde user te verkrijgen. Bijvoorbeeld als je naar zijn/haar profiel kijkt of als je een topic leest. (dan staat links meestal wat info over de gene die het bericht heeft gepost)
De Member-class wordt gebruikt voor de huidige bezoeker. Hierin zit de mogelijkheid om in te loggen enz. Aangezien een ingelogd persoon ook een user is en het ook handig zou zijn als ik informatie op kon vragen over de ingelogde persoon, extend Member de User-class.
Ik had echter ook bedacht dat je in je eentje maar één keer ingelogd kunt zijn, dus wilde ik van Member een Singleton-class maken. Dat wil dus zeggen dat er maar één instantie van kan zijn. Voorbeeldje:
Zo'n class kun je aanroepen door Singleton::getInstance->doeIets(); of zo. De constructor hoeft niet leeg te zijn, maar wel private, want op die manier is het onmogelijk om zelf een instantie te maken.
Hier zit echter mijn probleem in: de User-class heeft een public constructor en ik wil de Member-class een private constructor geven, maar als ik dat doe, dan krijg ik een error.
Gek genoeg heb ik dit probleem bij mijn database-class niet (die mysqli extend).
Weet iemand wat ik hieraan kan doen?
Bij voorbaat dank.
De Member-class wordt gebruikt voor de huidige bezoeker. Hierin zit de mogelijkheid om in te loggen enz. Aangezien een ingelogd persoon ook een user is en het ook handig zou zijn als ik informatie op kon vragen over de ingelogde persoon, extend Member de User-class.
Ik had echter ook bedacht dat je in je eentje maar één keer ingelogd kunt zijn, dus wilde ik van Member een Singleton-class maken. Dat wil dus zeggen dat er maar één instantie van kan zijn. Voorbeeldje:
Code (php)
Zo'n class kun je aanroepen door Singleton::getInstance->doeIets(); of zo. De constructor hoeft niet leeg te zijn, maar wel private, want op die manier is het onmogelijk om zelf een instantie te maken.
Hier zit echter mijn probleem in: de User-class heeft een public constructor en ik wil de Member-class een private constructor geven, maar als ik dat doe, dan krijg ik een error.
Gek genoeg heb ik dit probleem bij mijn database-class niet (die mysqli extend).
Weet iemand wat ik hieraan kan doen?
Bij voorbaat dank.
Ik heb trouwens al geprobeerd de constructor van de Member-class weg te halen (aangezien ik hem toch niet nodig heb), maar dat wil ik eignelijk niet (want ik wil dat hij private is) en bovendien krijg ik dan nog steeds een error omdat hij de constructor van de User-class aan gaat roepen...
Gewijzigd op 19/05/2005 02:45:00 door Jordi
waarom wil je per se een singleton?? dat is echt niet een geweldige manier van werken ofzo.
8uhjk n
Quote:
Gek genoeg heb ik dit probleem bij mijn database-class niet (die mysqli extend).
8uhjk n
waarom wil je per se een singleton?? dat is echt niet een geweldige manier van werken ofzo.
maar daar is de constructor niet private, of je bent verkeerd bezig.
Quote:
Gek genoeg heb ik dit probleem bij mijn database-class niet (die mysqli extend).
maar daar is de constructor niet private, of je bent verkeerd bezig.
De constructor van mysqli is niet private, maar ik heb van mijn database-class ook een singleton gemaakt, dus is daar de constructor ook private van.




