Цепочка методов на PHP | Methods chaining in PHP
2022-11-11
Если вы хотите создать такой класс, методы которого можно вызывать последовательно в виде цепочке, то для этого необходимо, что бы каждый метод возвращал объект $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