Difficulté, difficulté .. la seule réelle difficulté était de bien penser à mettre des & partout. Le problème ne venait pas des patern mais de la gestion des objets idiote en PHP 4 (ils étaient par défaut passés et affectés par copie et non par référence).
Le problème en question est réglé (c'est grosso modo *la* plus grosse amélioration de PHP5). On a des méthodes statiques, des attributs statiques, les objets sont bien des références ... implémenter un singleton en PHP5 c'est 10 lignes de code :
class monSingleton {
static $instance ;
static function getInstance() {
if (!isset(self::$instance)) {
self::$instance = new monSingleton ;
}
return self::$instance ;
}
}
$objSingleton = monSingleton::getInstance() ;
[^] # Re: Contradiction dans les dires
Posté par Éric (site web personnel) . En réponse à la dépêche PHP 5 futur concurrent de J2EE et .Net ?. Évalué à 2.
Le problème en question est réglé (c'est grosso modo *la* plus grosse amélioration de PHP5). On a des méthodes statiques, des attributs statiques, les objets sont bien des références ... implémenter un singleton en PHP5 c'est 10 lignes de code :
class monSingleton {
static $instance ;
static function getInstance() {
if (!isset(self::$instance)) {
self::$instance = new monSingleton ;
}
return self::$instance ;
}
}
$objSingleton = monSingleton::getInstance() ;