laravelで呼び出し元がfunctionからかどうか知りたい
呼び出されたfunctionが、routeから呼び出されたか、他のfunctionから呼び出されたか判定・確認する方法はありますでしょうか?
1
呼び出されたfunctionが、routeから呼び出されたか、他のfunctionから呼び出されたか判定・確認する方法はありますでしょうか?
debug_print_backtrace()を利用して呼び出し元を判別すればできると思います
参照:https://www.php.net/manual/ja/function.debug-print-backtrace.php
debug_print_backtrace
と似たような組み込み関数に、debug_backtrace
というものもあります。
https://www.php.net/manual/ja/function.debug-backtrace.php
debug_print_backtrace
はバックトレースを画面(標準出力)に表示するところまでやってくれますが、debug_backtrace
は配列として返却するだけですので、出力を汚すことなく稼働中のコードでも使うことができます。
場合によって使い分けてはいかがでしょうか。
ちなみに返却される配列の2つめ(配列のインデックスとしては1
)の要素が呼び出し元になります。