Method chaining
Method chaining technique provides possibility to invoke method on returned object.
$someObject->doSomethingAndReturnObject()->invokeMethodOnReturnedObject(); |
Method chaining is a technique familiar to everyone using PHP libraries like Doctrine. It can make code cleaner and more readable.
class Calculator { private $_amount = 0; public function add($amount) { $this->_amount += $amount; return $this; } public function multiply($amount) { $this->_amount *= $amount; return $this; } public function getAmount() { return $this->_amount; } public function __toString() { return (string)$this->getAmount(); } } $calculatorInstance = new Calculator(); $calculatorInstance->add(5)->multiply(10); print $calculatorInstance; # 50 |
This solution is also known as Fluent interface pattern.
In example above methods return current object, but they can return different object instead.
$instanceOfClassA->doSomethingAndReturnInstanceOfClassB()->invokeMethodOnInstanceOfClassB(); |