• Шаблоны для вашего сайта
  • Сделать сайт
  • Реклама
  • Berry CSS
  • Albireo Framework
  • Бесплатный HTML-курс
  • Telegram-канал
  • Обратная связь
MaxSite.org
О создании сайтов и не только
Создание сайтов под ключ →
Вход
×
или зарегистрироваться
PHP/ООП
  • Паттерн Singleton в PHP
  • ООП в PHP
  • Композиция и наследование ООП в PHP
  • Шаблоны проектирования для PHP
  • Шаблон «Fluent interface» (Текучий интерфейс)
  • Шаблон проектирования Facade (Фасад)
  • Шаблон Abstract Factory (Абстрактная фабрика) на PHP
  • Шаблон Factory Method (Фабричный метод) на PHP
  • Шаблон Singleton. Трейты (trait) в PHP
  • Шаблон Multiton (Пул одиночек)
  • Шаблон Registry (Реестр)
  • Шаблон Composite (Компоновщик)
  • Шаблон Builder (Строитель)
  • Шаблон Strategy (Стратегия)
  • Шаблон проектирования Adapter (адаптер)
  • Шаблон Observer (Наблюдатель)
  • Шаблон Prototype (Прототип)
  • Шаблон Bridge (Мост)
  • Шаблон Decorator (Декоратор)
  • Шаблон Flyweight (Приспособленец)
  • Шаблон Proxy (Заместитель)
  • Шаблон «Template method» (Шаблонный метод)
  • Dependency injection (внедрение зависимости)
  • Понимание ООП на примере Паскаля
  • Dependency Injection простыми словами
Навигация
  • Шаблоны для MaxSite CMS 22
  • jQuery и JavaScript 6
  • Java и Android 5
  • PHP/ООП 25
  • SQL 17
  • Albireo Framework 11
  • Berry CSS 7
  • CSS, HTML, LESS, SASS 23
  • PHP 37
  • Тайм-менеджмент 9
  • Софт 37
  • SEO 13
  • Git. GitHub 3
  • CodeIgniter 5
  • Landing Page 3
  • Alpine.js 14
  • Фильмы 2
  • Дневник 55

Вот здесь можно заказать создание сайта, шаблона или лендинга. Также вы можете выбрать готовые шаблоны для MaxSite CMS по небольшой цене. Также можно купить отдельные модули, компоненты для вашего сайта.

Шаблон Registry (Реестр)

PHP/ООППросмотров: 4694Комментарии: 016 июля 2019 г.
ООП

Шаблон Registry предназначен в первую очередь на решение проблемы глобальной области видимости. Это очень частая задача, когда нужно обеспечить общий доступ к данным, но при этом не желательно засорять глобальную область видимости. С помощью Registry, как раз и можно это сделать.

Следует отметить, что этот паттерн имеет множество реализаций. Я покажу свой вариант, основанный на использовании Multiton. Смысл в том, что Registry может хранить разные данные и для того, чтобы гарантировать единый доступ, следует использовать Singleton. Но, с практической точки зрения, данные в Registry могут иметь разные типы/группировку. Например конфигурация приложения может содержать параметры доступа к MySQL, Sqlite, ключ шифрования, параметры роутинга и т.п. Именно с помощью Мультитона мы можем указать «группу» настроек, чтобы они не смешивались между собой: general, database, route и т.п.

Обычно шаблон Registry используется через set/get-методы. Код с примерами вы найдете на гитхабе.

Работать с Registry нужно как с обычным мультитоном. Вначале получается экземпляр класса, дальше вызывается нужный метод.

// добавить
$rd = Registry::getInstance('sqlite');
$rd->set('dsn', 'sqlite:storage/users.sqlite');
 
// получить
$rd = Registry::getInstance('sqlite');
$dsn = $rd->get('dsn');

Поскольку данные хранятся в php-массиве, то они могут быть любыми типами (числа, строки, массивы, объекты и т.п.).


Создание сайтов (Украина) →
Berry - библиотека утилитарных CSS-классов
Шаблон Multiton (Пул одиночек)
twitter.com facebook.com
Другие записи сайта
Что нам стоит сайт построить?
Что нам стоит сайт построить?
Имитация select с помощью Alpine.js
Имитация select с помощью Alpine.js
Создание telegram-бота
Создание telegram-бота
Какой язык программирования учить новичку
Какой язык программирования учить новичку
Как убрать предупреждение "Небезопасный ввод пароля" в FireFox
Как убрать предупреждение "Небезопасный ввод пароля" в FireFox
Шаблон «Template method» (Шаблонный метод)
Шаблон «Template method» (Шаблонный метод)
Оставьте комментарий!

Комментарий будет опубликован после проверки. Вы соглашаетесь с правилами сайта.

(обязательно)

MaxSite.org
Как создать свой сайт

Услуги по созданию сайтов, блогов, лендингов
Обратная связь • Реклама на сайте
Карта сайта
Мои проекты
  • Шаблоны для вашего сайта
  • Заказать создание сайта
  • MaxSite CMS
  • Berry CSS (CSS Utilities)
  • Albireo Framework
  • UniCSS (Universal Atomic CSS)
  • Landing Page Framework
  • Бесплатные НТML-курсы
Ссылки
  • Telegram-канал
  • Github
  • Twitter
  • Telegram-бот
  • RSS
© MaxSite.org, 2006-2022. Работает на MaxSite CMS | Время: 0.3106 | SQL: 25 | Память: 4.59MB | Вход