Hay algunos puntos a tener en cuenta a la hora de hacer un singleton en PHP,
Obligatorio- El constructor debe ser privado
- La clase debe sobrescribir __clone
Opcional- Por lo general el metodo que para obtener el objeto se denomina getInstance
Código PHP:
Ver originalclass Singleton
{
private static $_instance;
private function __construct()
{}
public static function getInstance()
{
if (!self::$_instance) {
self::$_instance = new self;
}
return self::$_instance;
}
private function __clone()
{}
}
Ten en cuenta que es considerado por muchos(me incluyo) un anti-pattern y utilizarlo para la conexión a la bbdd es una pesima idea(esto te lo comento porque la clase de ejemplo es Database).
Saludos.