PHP паттерн Registry

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, обновлено 02.09.2022
9911
Предыдущая запись Автозагрузка классов
Следующая запись Обработка изображений в PHP

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

Дмитрий Соболев Дмитрий Соболев
10 апреля 2020 в 05:36
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;
}

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

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

Работа с массивами PHP – создание, наполнение, удаление
Основные примеры работы с массивами PHP. Создание, наполнение, извлечение удаление значений.
99339
+13
Примеры использования PDO MySQL
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...
104171
+8
Очистка данных из форм в PHP
Для предотвращения XSS, SQL-инъекций и других атак, данные полученные из форм нужно чистить. Простое экранирования кавычек не достаточно, нужен комплексный подход по типу данных.
11736
+6
Примеры отправки AJAX JQuery
AJAX позволяет отправить и получить данные без перезагрузки страницы. Например, делать проверку форм, подгружать контент и т.д. А функции JQuery значительно упрощают работу.
273988
+36
Постраничный вывод массива
В случаях, когда нужно вывести большой PHP-массив постранично, без использования баз данных.
12125
+7
Работа с FTP в PHP
Протокол FTP – предназначен для передачи файлов на удаленный хост. В PHP функции для работы с FTP как правило всегда доступны и не требуется установка дополнительного расширения.
18481
+2