Usine
<<<
Singleton Les classes et les objets (PHP 5)
>>>

5.10.13 Masques
5.10 Les classes et les objets (PHP 5)
5 Référence du langage
 Manuel PHP

Usine
->Singleton

5.10.13.2 Singleton

Le masque singleton est utilisé dans les situations où l'on a besoin qu'il n'y ait une unique instance d'une certaine classe. L'exemple le plus commun est une connexion à une base de données. L'implémentation de ce masque permet au développeur de rendre cette unique instance facilement accessible par beaucoup d'autres objets.

Fonction Singleton

<?php
class Example
{
    
// instance de la classe
    
private static $instance;

    
// Un constructeur privé ; empêche la création directe d'objet
    
private function __construct()
    {
        echo
'Je suis construit';
    }

    
// La méthode singleton
    
public static function singleton()
    {
        if (!isset(
self::$instance)) {
            
$c = __CLASS__;
            
self::$instance = new $c;
        }

        return
self::$instance;
    }

    
// Exemple d'une méthode
    
public function bark()
    {
        echo
'Woof!';
    }

    
// Prévient les utilisateurs sur le clônage de l'instance
    
public function __clone()
    {
        
trigger_error('Le clônage n\'est pas autorisé.', E_USER_ERROR);
    }
}

?>

<< Singleton >>
Usine Masques Les classes et les objets (PHP 5)