Бортовой журнал Ктулху

Цепочка методов на PHP | Methods chaining in PHP

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

Этот шаблон программирования (паттерн) называется "текучий интерфейс" (fluent interface) и его назначение сделать код более компактным и читабельным.

На простом примере покажу как сделать такой класс калькулятора, только нужно добавить аргументы каждому методу.

 

 

<?php
class cal
{
 private $int;
function __construct()
 {
 $this->int = 0;
 }
function setPlus( $var )
 {
 $this->int += $var;
 return $this;
 }
function setMinus( $var )
 {
 $this->int -= $var;
 return $this;
 }
function setMult( $var )
 {
 $this->int *= $var;
 return $this;
 }
function getDivision( $var )
 {
 $this->int /= $var;
 return $this;
 }
function getEqual()
 {
 return $this->int;
 }
}
$a = new cal();

echo $a->setPlus(4)->setMinus(2)->getEqual(); // 2