<?php
/*****************************************************************************
 * Registry.php
 * Allows sharing static variables between classes.
 *
 * Kabuki CMS (C) 2013-2015, Aaron van Geffen
 *****************************************************************************/

class Registry
{
	public static $storage = [];

	public static function set($key, $value)
	{
		self::$storage[$key] = $value;
		return true;
	}

	public static function has($key)
	{
		return isset(self::$storage[$key]);
	}

	public static function get($key)
	{
		if (!isset(self::$storage[$key]))
			trigger_error('Key does not exist in Registry: ' . $key, E_USER_ERROR);

		return self::$storage[$key];
	}

	public static function remove($key)
	{
		if (!isset(self::$storage[$key]))
			trigger_error('Key does not exist in Registry: ' . $key, E_USER_ERROR);

		unset(self::$storage[$key]);
	}
}