Перегрузкой метода __call() можно делать интересные цепочки классов,
которые достаточно сильно упрощают нотацию программы:
class App
{
private $res = array();
public function __clone() {
throw new Exception("Clone not allowed!");
}
public function __call($name, $args) {
$this->res[]=array('opr'=>$name, 'args'=>$args);
print_r($this->res);
return $this;
}
public function exec() {
$res=array();
}
}
// Новая нотация
$t = new App;
$t->search('dog')->where('outdoors')->exec();
* Такие вариант можно строить с разными объектами
и генерировать их от какого-то базового синглтона
PHP Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor