<?php /********************************************************************** *Autor: daniel1302 *Licencja: by DamnedLand Staff *Zadanie pliku: *Zainicjuje istnienie odpowiedniej klasy **********************************************************************/ Class Singleton { #Zdefiniuj otwieraną klasę protected $instance; #Wykaż wszystkie otwarte klasy #Wymagana konfigracja private $conf = Kernel::config()->framework('framework'); /** *Zainicjuj klase z Frameworka * *@return object Wskazana klasa */ public function instanceFramework($class) { $file = $this->conf['frameworkRoot'].'/'.$class.'.php'; return $this->instance($file, $class); } /** *Zainicjuj klase z gry * *@return object Wskazana klasa */ public function instanceGame($class) { $file = $this->conf['gameRoot'].'/class/Class.'.$class.'.php'; return $this->instance($file, $class); } /** *Zapisz otwierane dane oraz zainicjuj klasę * *@return object Wskazana klasa */ protected function instance($file, $class) { $this -> openedClass[]['file'] = $file; $this -> openedClass[]['class'] = $class; return false; else { $this -> instance = @new $class; if (class_exists($this->instance, false)) { $this -> openedClass[]['status'] = false; return false; } else { $this -> openedClass[]['status'] = true; return $this -> instance; } } } /** *Skasuj niepotrzebne * *@return null null */ function __destruct() { } } ?>
Jest to klasa wzorca singleton(ja go tak rozumie czy dobrze?)
Jak go użyje:
do kontrolera dodam
$this -> load = new Singleton;
Jeszcze dla pewności.
Wzorzec singleton odpowiada za inicjacje pojedynczej klasy w pamięci?
Czyli ze jeśli chę otworzyć na chwilę klase to używam go tak?