我想在我的简单 ORM 中用 PHP 实现一个钩子系统:
class Record {
public function save() {
if (method_exists($this,"before_save")) {
$this->before_save();
}
//...Storing record etc.
}
}
class Payment extends Record {
private function before_save() {
$this->payed_at = time();
}
}
$payment = new Payment();
$payment->save();
这会导致致命错误:
致命错误:从上下文“记录”中调用私有方法 Payment::before_save()
说得通。
我可以将范围更改为 public,但这看起来很难看:除了 Payment 之外没有人与before_save()
. 恕我直言,最好保持私密。
如何让 Record 调用继承自 Record 的类的私有方法?