Classes List

frdl\traits\TraitSingleton

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
<?php
namespace frdl\traits;


trait TraitSingleton
{
protected static $instance = null;
//abstract function __construct();
public static function getInstance() {

//print_r(compact(func_get_args()));
$args = func_get_args();

       if (null === self::$instance) {
          self::$instance = new self($args[0],$args[1],$args[2]);
    //self::$instance = call_user_func_array([get_class(self), '__construct'], func_get_args() );
       }
       return self::$instance;
    }



    protected function __clone() {
        throw new \Exception('Cloning '.__CLASS__.' is not allowed.');
    }
   
    protected function __wakeup() {
        throw new \Exception('Unserializing '.__CLASS__.' is not allowed.');
    }
}