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

Комментарии 1

Дмитрий Соболев Дмитрий Соболев
10 апреля 2020 в 05:36
+1
public static function addToValueAfter($key, $value)
{
return self::$_storage[$key] .= $value;
}
public static function addToValueBefore($key, $value)
{
return self::$_storage[$key] = self::$_storage[$key] . $value;
}

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

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

Примеры использования PDO MySQL
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...
11.11.2017
30081
+1
Работа с массивами PHP – создание, наполнение, удаление
Основные примеры работы с массивами PHP. Создание, наполнение, извлечение удаление значений.
29.10.2017
13704
+3
Очистка данных из форм в PHP
Для предотвращения XSS, SQL-инъекций и других атак, данные полученные из форм нужно чистить. Простое экранирования кавычек не достаточно, нужен комплексный подход по типу данных.
16.08.2019
1513
+1
Постраничный вывод массива
В случаях, когда нужно вывести большой PHP-массив постранично, без использования баз данных.
12.03.2020
977
+2
Автоматическое сжатие и оптимизация картинок на сайте
Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
26.10.2018
6116
+5
Пример парсинга html-страницы на phpQuery
phpQuery – это удобный HTML парсер взявший за основу селекторы, фильтры и методы jQuery, которые позволяют...
18.03.2020
2946
+2