Patrón Singleton en PHP5 - Webeame Snippets


Añadir snippet

Patrón Singleton en PHP5

El patrón Singleton se aplica a situaciones en las cuales hay la necesidad de tener una sola instancia de una clase. El ejemplo más común de esto es una conexión de base de datos. Tendremos una simple instancia fácilmente accesible a muchos otros objetos.
  1. <?php
  2. class Example
  3. {
  4. // Hold an instance of the class
  5. private static $instance;
  6.  
  7. // A private constructor; prevents direct creation of object
  8. private function __construct()
  9. {
  10. echo 'I am constructed';
  11. }
  12.  
  13. // The singleton method
  14. public static function singleton()
  15. {
  16. if (!isset(self::$instance)) {
  17. $c = __CLASS__;
  18. self::$instance = new $c;
  19. }
  20.  
  21. return self::$instance;
  22. }
  23.  
  24. // Example method
  25. public function bark()
  26. {
  27. echo 'Woof!';
  28. }
  29.  
  30. // Prevent users to clone the instance
  31. public function __clone()
  32. {
  33. trigger_error('Clone is not allowed.', E_USER_ERROR);
  34. }
  35.  
  36. }
  37.  
  38. ?>
Esto permite que se obtenga una simple instancia de la clase Example.
  1. <?php
  2. // Error porque el constructor es privado
  3. $test = new Example;
  4.  
  5. // Devuelve siempre la misma instancia
  6. $test = Example::singleton();
  7. $test->bark();
  8.  
  9. // Lanzará un error
  10. $test_clone = clone($test);
  11.  
  12. ?>

En PHP patrón singleton por admin hace on 30/1/08 | Comentarios

Comentarios

Logeate para comentar