Quantcast
Channel: Blog Desarrollo - Información para desarrolladores » PATRONES
Viewing all articles
Browse latest Browse all 3

Singleton en PHP

$
0
0

El patron Singleton  es una de las maneras mas utilizadas en POO para mantener solo una instancia de una determinada clase.  Esto puede ser util en muchas ocaciones, en donde necesitemos controlas las instancias creadas. Se utiliza mucho en lenguajes como C++ o Java.

Tambien se puede utilizar en PHP como en este ejemplo

<?php
class Ejemplo
{
    // Contenedor Instancia de la Clase
    private static $instance;

    // A private constructor; previene creación de objetos vía new
    private function __construct()
    {
        echo 'Soy el constructor';
    }

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

        return self::$instance;
    }

    // Clone no permitido
    public function __clone()
    {
        trigger_error('Clone no se permite.', E_USER_ERROR);
    }

}
?>

Pero leyendo el blog joni2back.com.ar encontre otra forma de hacerlo.

<?php
private static $myInstance = array();
 public static function getInstance($instanceName = 'default') 
{
    return isset(self::$myInstance[$instanceName]) ? 
    self::$myInstance[$instanceName] : 
    self::$myInstance[$instanceName] = new self;
}
Para usar la instancia asi:
//Default instance
MyClass::getInstance()->setUsername('root');

//Payloads instance
MyClass::getInstance('payloads')->setUsername('guest')

Viewing all articles
Browse latest Browse all 3

Latest Images





Latest Images