Modèle de conception Singleton en PHP5
L'implémentation du modèle de conception Singleton en PHP5 implique de créer une classe qui ne peut avoir qu'une seule instance, quelle que soit la manière dont plusieurs fois, il est instancié. Ceci est réalisé en utilisant une variable statique pour stocker l'instance unique et en empêchant le clonage ou la désérialisation.
Voici un exemple de la façon de créer une classe Singleton en PHP5 :
final class UserFactory { private static $inst = null; // Prevent cloning and de-serializing private function __clone(){} private function __wakeup(){} /** * Call this method to get singleton * * @return UserFactory */ public static function Instance() { if self::$inst === null) { self::$inst = new UserFactory(); } return self::$inst; } /** * Private ctor so nobody else can instantiate it * */ private function __construct() { } }
Ceci l'implémentation utilise une variable statique $inst pour stocker l'instance unique de la classe UserFactory. La méthode Instance() sert de getter singleton. Si $inst est nul, une nouvelle instance est créée et affectée à $inst.
Pour utiliser cette classe Singleton, appelez simplement la méthode Instance() pour obtenir l'instance unique :
$fact = UserFactory::Instance(); $fact2 = UserFactory::Instance();
La comparaison de $fact et $fact2 donnera vrai, confirmant qu'il s'agit de la même instance.
Cependant, tenter d'instancier directement un nouvel objet UserFactory l'utilisation de new UserFactory() générera une erreur car le constructeur est rendu privé. La seule façon d'obtenir une instance de la classe UserFactory est d'utiliser la méthode Instance().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!