debug_backtrace() 以外で呼び出し元の関数を取得する方法はありますか?
friendやinternalなどのスコープをシミュレートするための貪欲でない方法を探しています。
クラスAとクラスBがあるとしましょう。
今までdebug_backtrace()
は欲張りすぎる(私見ですが)を使っていました。
私は次のようなことを考えました:
<?php
class A
{
public function __construct(B $callerObj) {}
}
class B
{
public function someMethod()
{
$obj = new A($this);
}
}
?>
特定の 1 つのクラスに制限したい場合は問題ないかもしれませんが、300 のクラスがあり、そのうちの 25 に制限したいとしましょう。
1 つの方法は、インターフェースを使用して集約することです。
public function __construct(CallerInterface $callerObj)
しかし、それでも醜いコードです。
さらに、そのトリックは静的クラスでは使用できません。
もっと良いアイデアはありますか?