<?php
/**********************************************************************
*Autor: daniel1302
*Licencja: by DamnedLand Staff
*Zadanie pliku:
*Zainicjuje istnienie odpowiedniej klasy
**********************************************************************/
Class Singleton
{
#Zdefiniuj otwieraną klasę
protected $instance;
#Wykaż wszystkie otwarte klasy
public $openedClass = array(); #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()
{
unset($this->openedClass); }
}
?>
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?