Вызывать метод каждый раз, когда другие методы вызываются?
Я использую __call()
чтобы сделать это, но это нарушает видимость метода, я должен объявить методы, которые будут иметь автоматические вызовы с protected
или же private
видимость. Например:
<?php
class test {
public function __call($method,$arguments)
{
if(method_exists($this, $method)) {
$this->qux();
return call_user_func_array([$this,$method], $arguments);
}
}
protected function foo (){
echo 'Foo';
}
protected function bar(){
echo 'Bar';
}
public function qux(){
echo 'Qux';
}
}
$o = new test();
$o->foo(); // outputs 'QuxFoo'
$o->bar(); // outputs 'QuxBar'
Есть ли другой способ сделать это, не нарушая видимость метода? Например, мне нужно foo()
а также bar()
быть public
,