Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
class registry{
/**
* @desc Speichert ein Object der Class registry
*
* @var object
* @access protected static
*/
protected static $instance = null;
/**
* @desc Speichert Objecte so wie Alle weiteren Werte die Uebergeben werden
*
* @var array
* @access protected static
*/
protected $values = array();
/**
* @desc Erstellt ein Object der Class registry und speichert es in der Variable $this->instance
*
* @access public static
* @return object
*/
public static function getInstance(){
if(self::$instance === null){
self::$instance = new registry();
}
return self::$instance;
}
/**
* @desc Konstruktor, ist eine geschuetzte Funktion.
* Dies verhindert das mehr als 1 Object erstellt wird.
* Auf die Klasse registry wird ueber die Funktion getInstance zugegriffen.
*
*
* @access protected
* @return void
*/
protected function __construct(){}
/**
* @desc Destruktor, ist eine geschuetzte Funktion.
* Dies verhindert das Objecte von der Klasse registry von Hand geschlossen werden.
*
* @access protected
* @return void
*/
protected function __destruct(){
unset($this);
}
/**
* @desc Clone, die Funktion ist private, welches verhindert das mehr als 1 Object von registry existieren kann.
*
* @access private
* @return void
*/
private function __clone(){}
/**
* @desc Nimmt Werte entgegen und speichert sie in einem Array: $this->values
*
* @param string $key
* @param mixed $value
* @access public
* @return void
*/
public function set($key, $value){
$this->values[$key] = $value;
}
/**
* @desc Kontrolliert ob die gewuenschte Variable/Object vorhanden ist.
* Falls ja wird die Variable/Object ausgeliefert.
*
* @param string $name
* @access public
* @return mixed
* @see registry::isregistry();
*/
public function get($name){
if($this->isregistry($name)){
return $this->values[$name];
}
return false;
}
/**
* @desc Kontrolliert ob die gewuenschte Variable/Object vorhanden ist.
* Falls ja wird die Variable/Object geloescht.
*
* @param string $name
* @access public
* @return boolean
* @see registry::isregistry();
*/
public function remove($name){
if($this->isregistry($name)){
unset($this->values[$name]);
return true;
}
return false;
}
/**
* @desc Kontrolliert ob die Variable/Object in der Klasse registry gespeichert ist.
*
* @param string $name
* @access public final
* @return boolean
*/
public final function isregistry($name){
return array_key_exists($name, $this->values);
}
}
$user = new User(...,...);
$config = parse_ini_file(...);
$registry = registry::getInstance();
$registry->set("user", $user);
$registry->set("config", $config);
/** Abfragen der werte **/
$getvalues = registry::getInstance();
$user = $getvalues -> get("user");
$config = $getvalues -> get("config");
class Registry extends ArrayObject { /** ... */ }