Верх страницы
Логотип Telegram
@Злой_Полицейский — авторский канал вашего покорного слуги в Telegram, где я пишу заметки о веб-разработке, программировании, PHP, инструментах и WordPress.
Обложка к записи Реализация fluent interface на PHP
Время для прочтения: 0 мин. 1 сек.

Реализация fluent interface на PHP

Текучий интерфейс (англ. fluent interface , название придумано Эриком Эвансом и Мартином Фаулером) — способ реализации в разработке программного обеспечения, объектно-ориентированного API, нацеленный на повышение читабельности исходного кода программы.

Текучий интерфейс хорош тем, что упрощается множественный вызов методов одного объекта. Обычно это реализуется использованием цепочки методов, передающих контекст вызова следующему звену.

Данный стиль написания кода можно увидеть у разработчиков Zend-фреймворка, например, в классе Zend_Db.

Реализуется текучий интерфейс достаточно просто:

 
class Car {
        private $speed;
        private $color;
        private $doors;
 
        public function setSpeed($speed){
                $this->speed = $speed;
                return $this;
        }
 
        public function setColor($color) {
                $this->color = $color;
                return $this;
        }
 
        public function setDoors($doors) {
                $this->doors = $doors;
                return $this;
        }
}
 
// Обычная  реализация 
$myCar2 = new Car();
$myCar2->setSpeed(100);
$myCar2->setColor('blue');
$myCar2->setDoors(5);
 
// Текучий интерфейс
$myCar = new Car();
$myCar->setSpeed(100)->setColor('blue')->setDoors(5);

Ссылки

Автор: Кобзарёв Михаил

Суровый русский разработчик. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все.

Ведет блог о разработке, дайджест в телеграмме и в ВК.

Комментарии
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Предыдущая запись

Михаил Кобзарёв (mihdan)

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, фильмы и сериалы