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

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

Шаблон «Fluent interface» (Текучий интерфейс)

PHP/ООПООП22 июня 2019 г.

Строго говоря, «Текучий интерфейс» даже не сколько паттерн, сколько методика организации кода, направленная на то, чтобы упростить его чтение. Вместо последовательных вызовов функций в каждой строчке, организуется цепочка методов. Наверняка вы с таким встречались:

$fullName = (new MyName())->setFirstName('Don')->setLastName('Joe')->getResult();

Реализуется такой подход очень просто. Каждый метотод, который может участвовать в цепочке, должен возвращать ссылку на свой объект $this.

Посмотрите на код Fluent interface на гитхабе, чтобы понять общий принцип.

Применяется такой подход достаточно часто. Наверное самый красноречивый пример — это построение SQL-запросов с помощью цепочки вызовов, вроде такой:

$sql = $DB->select('')->from('')->where('')->order('')->getSql();

Fluent interface базируется на том, что в классе есть сеттеры (set) и геттеры (get). Первые обычно просто устанавливают значение какого-то поля класса.

public function setFirstName($name)
{
	$this->firstName = $name;
	return $this;
}

Вторые — получают результат.

public function getFirstName()
{
	return $this->firstName;
}

Так вот, у сеттеров можно возвращать $this, а значит они могут не только участвовать в цепочке вызовов, но и обеспечивают её дальнейшее построение. А вот геттеры обычно завершают цепочку и возвращают какой-то свой конечный результат.

Ещё нужно учитывать, что последовательность вызовов может меняться. Если сеттер просто присваивает значение полю, то он может выполняться в любом месте. Но, если он ещё что-то делает, что может повлиять на остальные поля, то такой метод потребуется указывать в строго определенном месте. В этом случае такой метод лучше вызывать отдельно.

Шаблон проектирования Facade (Фасад)
Шаблоны проектирования для PHP
twitter.com facebook.com

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

  • О главном :)
  • Принципы Material Design
  • Как обновить Open Server Panel
  • Тайм-трекер для учёта времени работы (бесплатно)
  • Шаблон Registry (Реестр)
  • Что такое REST, RESTFul и CRUD
  • MVC (Model-View-Controller) в 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.2826 / SQL: 25 / Память: 1.33MB / Вход