对方法调用执行代码段


Execute snippet on method call

我想知道每次在类内调用方法时,是否有办法在PHP中执行代码段。类似于__construct()的工作方式,但应该在每次方法调用时调用它。

您可能正在查找__call()。每当调用不可访问的方法时,就会调用它。

class MyClass {
  protected function doStuff() {
    echo "doing stuff.";
  }
  public function __call($methodName, $params) {
    echo "In before method.";
    return $this->doStuff();
  }
}
$class = new MyClass();
$class->doStuff(); // In before method.doing stuff.

我可以建议您使用面向方面的库来满足您的需求。您将能够为方法(正则表达式)创建一个切入点,只需在每个方法之前/之后或前后发出调用建议(闭包)。你可以看看我的图书馆:去吧!AOP PHP