Все методы интерфейса в ваших реализациях отправляются на __call()
. Он включает в себя много грязных вырезок и вставок, но он работает.
interface Adder {
public function add($x, $y);
}
class Calculator implements Adder {
public function add($x, $y) {
return $this->__call(__FUNCTION__, func_get_args());
}
public function __call($method, $args) {
...
}
}
По крайней мере, тело каждого метода может быть идентичным. ;)