Ответ 1
Попросите все методы интерфейса в ваших реализациях отправить __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) {
...
}
}
По крайней мере, тело каждого метода может быть идентичным.;)