PHP паттерн Registry

Шаблон проектирования «Registry» или «Реестр» представляет собой что то вроде массива, доступного на всех уровнях приложения и используется для передачи данных между модулями заменяя глобальные переменные.

Паттерн реализован на статических методах и не требует создания экземпляра класса. Также для упрощения его использования рекомендуется использовать автозагрузку классов.

class Registry
{ 
	private static $_storage = array(); 

	/**
	 * Установка значения.
	 */
	public static function set($key, $value)
	{ 
		return self::$_storage[$key] = $value;
	}

	/**
	 * Получение значения.
	 */
	public static function get($key, $default = null)
	{
		return (isset(self::$_storage[$key])) ? self::$_storage[$key] : $default;
	}

	/**
	 * Удаление.
	 */
	public static function remove($key)
	{
		unset(self::$_storage[$key]); 
		return true;
	}

	/**
	 * Очистка.
	 */
	public static function clean()
	{
		self::$_storage = array(); 
		return true;
	}
}
PHP

Использование

В одной части сайта, например в контроллере, устанавливается значение:

Registry::set('sid', 'xxxxxx');
PHP

В другой, например в шаблоне, это значение выводится:

echo Registry::get('sid');
PHP
23.12.2017 , обновлено 15.10.2019
Предыдущая запись Автозагрузка классов
Следующая запись Обработка изображений в PHP

Комментарии

, чтобы добавить комментарий.

Другие публикации

Примеры использования PDO MySQL
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...
11.11.2017
23733
+1
Работа с массивами PHP – создание, наполнение, удаление
Основные примеры работы с массивами PHP. Создание, наполнение, извлечение удаление значений.
29.10.2017
8824
+1
Очистка данных из форм в PHP
Для предотвращения XSS, SQL-инъекций и других атак, данные полученные из форм нужно чистить. Простое экранирования кавычек не достаточно, нужен комплексный подход по типу данных.
16.08.2019
860
+1
Автоматическое сжатие и оптимизация картинок на сайте
Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
26.10.2018
4572
+3
Постраничный вывод массива
В случаях, когда нужно вывести большой PHP-массив постранично, без использования баз данных.
12.03.2020
122
+1
Управление выводом ошибок PHP
PHP предлагает гибкие настройки вывода ошибок, среди которых функия error_reporting($level) – задает, какие ошибки PHP попадут в отчет.
10.10.2019
1162
0