如何在PHP中使用接口和神奇的方法
2022-08-31 01:12:17
我想使用接口,但我的一些实现依赖于神奇的方法,例如__invoke和__call。我必须从接口中删除可能被神奇地调用(在任何实现中)的方法的签名。这导致了反模式空接口(是的,我只是编造的)。
如何在PHP中结合接口和神奇的方法?
我想使用接口,但我的一些实现依赖于神奇的方法,例如__invoke和__call。我必须从接口中删除可能被神奇地调用(在任何实现中)的方法的签名。这导致了反模式空接口(是的,我只是编造的)。
如何在PHP中结合接口和神奇的方法?
让实现中的所有接口方法调度到 。它涉及许多蹩脚的剪切和粘贴工作,但它有效。__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) {
...
}
}
至少每种方法的主体可以相同。;)