php - выполнить фрагмент при вызове метода - PullRequest
1 голос
/ 27 февраля 2012

Я хотел бы знать, есть ли способ выполнять фрагмент кода в PHP каждый раз, когда метод вызывается внутри класса.Подобно тому, как работает __construct (), но его следует вызывать при каждом вызове метода.

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

Вы, вероятно, ищете __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.
0 голосов
/ 30 января 2013

Я могу предложить вам использовать аспектно-ориентированную библиотеку для ваших нужд.Вы сможете создать pointcut для методов (регулярное выражение) и просто дать совет (закрытие) для вызова до / после или вокруг каждого метода.Вы можете взглянуть на мою библиотеку для этого: Go!АОП PHP

...