Comment puis-je créer une méthode qui est appelée chaque fois qu'une méthode publique est appelée ? On pourrait aussi dire qu'il s'agit d'un post-méthode-call-hook.
Mon code actuel :
<?php
class Name {
public function foo() {
echo "Foo called\n";
}
public function bar() {
echo "Bar called\n";
}
protected function baz() {
echo "Baz called\n";
}
}
$name = new Name();
$name->foo();
$name->bar();
La sortie actuelle dans ce code serait :
Foo called
Bar called
Je voudrais que la méthode baz() soit appelée chaque fois qu'une autre méthode publique est appelée. Par exemple
Baz called
Foo called
Baz called
Bar called
Je sais que j'aurais pu faire quelque chose comme ça :
public function foo() {
$this->baz();
echo "Foo called\n";
}
Mais cela ne résoudrait pas vraiment mon problème car ce n'est pas vraiment orthogonal et c'est relativement pénible à mettre en œuvre si j'ai 100 méthodes qui ont besoin que cette autre méthode soit appelée avant elles.