Super-шаблон MFШаблоны MaxSite CMSНТML-курсы бесплатноРеклама на сайтеTelegram-канал
MaxSite.org

Как создать свой сайт

Заказать сайт/блог/лендинг недорого
Дневник PHP Софт CSS, HTML, LESS, SASS PHP/ООП SEO Alpine.js Шаблон MF Тайм-менеджмент jQuery и JavaScript Java и Android CodeIgniter Landing Page Git. GitHub
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 (внедрение зависимости)

Я готов сделать для вас сайт/лендинг на MaxSite CMS с установкой, настройкой, созданием шаблона, подгонкой дизайна и т.д. У меня большой опыт и множество созданных сайтов, плагинов, шаблонов. Также я выполняю отдельные работы по PHP и HTML5/CSS3-верстке. Могу поучаствовать в вашем стартапе как php-программист. При необходимости переведу ваш сайт с другого «движка» (WP, Wix и т.д.) на MaxSite CMS, чтобы он стал быстро работать.

Принимаю заказы на создание telegram-ботов.

Несколько примеров последних работ:

  • b-reading.ru
  • dailycars.com.ua
  • vcredite.com.ua
  • cq-herson.info
  • eremeev.org
  • booksread.ru
  • beregite-zdorovje.ru
  • regression.pro

Подробнее о моих услугах

Шаблон Observer (Наблюдатель)

PHP/ООП2 ноября 2019 г.

Поведенческий шаблон Наблюдатель реализует механизм, с момощью которого один класс может уведомлять другие о своём изменении. Практическая реализация кода может быть разной, но в PHP уже существуют готовые стандартные интерфейсы SplSubject, SplObjectStorage и SplObserver, на которых и принято реализовывать паттерн Observer.

Стоит отметить, что сам по себе этот шаблон родом из «больших» языков. Я уже рассказывал о его реализации для Java, где класс Модели отправляет уведомления о своём изменении всем своим «слушателям».

Исходный код вы найдёте на гитхабе. Рассмотрим его подробней.

Класс Наблюдатель (Observable) реализует интерфейс SplSubject. В этом классе хранятся «слушатели» — объекты стандартного класса SplObjectStorage. С помощью метода attach()добавляется новый «слушатель». Удалить его можно с помощью detach().

Также есть метод notify()которые «отправляет» уведомление об изменениях в классе «наблюдателя» всем своим «слушателям».

Каждый слушатель реализует стандартный интерфейс SplObserver и должен содержать метод update(). Собственно этот метод и используется в качестве «события».

Использование паттерна происходит по такой схеме. Вначале инстанцируется основной класс (Наблюдатель), после классы «слушателей», которые нужно зарегистрировать у Наблюдателя. Дальше, как только Наблюдателю нужно отправить уведомление вызывается метод notify(), который в свою очередь выполнит методы update()подчинённых классов.

В «больших» языках шаблон Observer имеет практический смысл, поскольку программы работают в событийной среде ОС. Например когда нажимается кнопка мыши, то Windows генерирует событие WM_LBUTTONDOWN, которое может перехватить программа. После этого программа всё также работает и функция для обработки нажатия кнопки просто ждёт когда придёт новое событие от операционной системы.

PHP — функциональный язык, где нет места событийности, поэтому шаблон Observer нужно рассматривать в более примитивной форме: по сути это просто вызов методов из «родительского» класса, где задача сводится только к тому, указать классы слушателей и вызвать какой-то предопределённый метод.

Шаблон Prototype (Прототип)
Проблема View в MVC
twitter.com facebook.com

Другие записи сайта

  • Обновление Albireo (Sqlite, PSR-4, PSR-3 и т.д.)
  • Глюки, глюки…
  • ИКС — новая «пузомерка» Яндекса
  • Бесплатный PHP, HTML, CSS и JavaScript редактор - CodeLobster IDE
  • Шаблоны текста с помощью Punto Switcher
  • Передача параметров в php-функцию
  • Вебальта - шпион?
Оставьте комментарий!

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

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

MaxSite.org
Блог о том, как создавать сайты

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