Реализация 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);

Ссылки

Источник: https://www.kobzarev.com/programming/php-fluent-interface/

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

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: