PHPクラス内で呼び出されたメソッドを知り、可能であれば同じクラス内で処理する必要があります。PHPクラスで呼び出されたメソッドを確認してください
例
class Pages
{
public function firstPage()
{
return 'First Page';
}
public function secondPage()
{
return 'Second Page';
}
public function thirdPage($details)
{
return view('ThirdPage')->with('details', $details);
}
//This will handle everything that happening.
public function handler($methodExecuted)
{
// $methodExecuted will hold what method was accessed.
echo 'Page ' . $methodExecuted . ' Was accessed';
}
}
そのちょうどここにこれに似た何かが、この機能はPHPが利用可能であるならば、「ハンドラ」方法は、本物のアプリにデータをデータベースに格納するかわからないイムが、いくつかのデータをエコーします。
PHPには、これを実現する魔法の方法などがありますか?私が今までに遭遇した唯一のことは、__call
メソッドですが、これはその行の上に並べ替えていますが、idが望むものとまったく同じではありません。
大きな疑問は、なぜこれをやろうとしているのですか。どのメソッドが呼び出されたかを知る最終目標は何ですか?実際には、コードを書いたのはどのメソッドが呼び出されたかを既に知っているはずです。ですから、あなたが達成したいことが何であるかを少し説明して、問題の解決策だと思うだけでなく、より良い助けを得ることができるかもしれません。 – ChristianF
@ChristianFどのページが返されているかを知る必要があるので、50 +メソッドを持つすべてのメソッドの中に新しいログのコードを書く代わりに、ログに動的に追加することができます。コードを何度も何度も繰り返し、ほとんどのプログラミング言語と同じように、自分自身を繰り返し始めるときには、繰り返し処理を最小限に抑えることができる何かがあります。どうやら、この特定のケースではPHPはとにかくありません。 –
言語には重複を減らす方法がありません。プログラマが行います。ロギングを追加する必要がある場合は、コントローラロジックから切り離された別のサービスを使用する必要があります。確かに、どの 'Page'オブジェクトとどの' page() 'メソッドを呼び出すかを知るリゾルバがあります。このリゾルバでは、この情報をログに記録する必要があります。 –