クラス内でメソッドが呼び出されるたびにPHPでスニペットを実行する方法があるかどうかを知りたいと思います。 __construct()の動作と同様ですが、すべてのメソッド呼び出しで呼び出される必要があります。php - メソッド呼び出しでスニペットを実行
答えて
あなたはおそらく__call()
を探しています。これは、アクセス不可能なメソッドが呼び出されるたびに呼び出されます。
class MyClass {
protected function doStuff() {
echo "doing stuff.";
}
public function __call($methodName, $params) {
echo "In before method.";
return $this->doStuff();
}
}
$class = new MyClass();
$class->doStuff(); // In before method.doing stuff.
問題は、この関数を既存のメソッドで呼び出すようにしたいということです。 – Paris
PHPですでにアクセス可能な場合は、メソッド呼び出しをインターセプトできません。これを可能にし、扱いやすいようにするためのデザインパターンとテクニックがたくさんありますが、その方法はいずれかの方法でアクセスできないようにすることから始まります。あなたは '$ myClass-> callMethod( 'methodName'、array( 'args'))'のようなものに入ることができますが、それは非常に貧しい解決策のようです。 –
ニース。だから私は私にはアクセスできないメソッドを作る(私はそれのための最善の方法を見つけるだろう。私は私の心の中に2つの異なる方法がある)と私はコールを使用します。ニース。どうもありがとうございました :-) – Paris
あなたのニーズに合わせてアスペクト指向のライブラリを使用することをお勧めします。メソッド(正規表現)のポイントカットを作成し、各メソッドの前または後に呼び出すためのアドバイス(クロージャ)を作成することができます。 私のライブラリーをご覧になれます:Go! AOP PHP
- 1. メソッド呼び出しとメソッド実行
- 2. 実行時にメソッドを呼び出す
- 3. 現在実行中のコンソールアプリケーションでメソッドを呼び出します。
- 4. 実行例外:呼び出し可能メソッドから呼び出し中
- 5. 実行時に式ツリーを呼び出すメソッドを呼び出す
- 6. メソッド呼び出しを実施する
- 7. ActionPerformedからメソッドを呼び出してメインスレッドでメソッドを実行します
- 8. PHP OOP内部メソッド呼び出し
- 9. 親メソッドをMixinで実行しないでGrandparentメソッドを呼び出す
- 10. PHP:メソッドが呼び出されるたびに実行されるマジックメソッド
- 11. 呼び出しクラスのメソッドを実行しています
- 12. プライムフェースウィザードはonclickメソッド呼び出しを実行しません
- 13. PHPスクリプトでhrefリンクを呼び出して実行する
- 14. プログラムの実行中にメソッド呼び出しを記録する
- 15. Thread.currentThread()。setName()はスレッドの実行メソッドを呼び出しますか?
- 16. JavaからPHPメソッドを呼び出す
- 17. jquery ajax呼び出しはPHPスクリプトを実行しません
- 18. サービスから実行中のアクティビティでメソッドを呼び出す
- 19. メソッド呼び出し
- 20. 他のオブジェクトからメソッドを呼び出すメソッド呼び出し
- 21. PHPクラス:メソッド呼び出しが行われるたびに特定の関数を呼び出す
- 22. Ruby:initの呼び出しメソッド
- 23. RPC呼び出しの完了他のメソッドやコードの実行?
- 24. 実行のためのメソッド呼び出しの準備
- 25. Javaユニットテストの実行中のメソッド呼び出しのリスト
- 26. メソッド呼び出し後にRubyコードが実行されない
- 27. 1回の呼び出しでメソッドを呼び出す
- 28. 各メソッド呼び出しでjQueryがコンストラクタを呼び出す
- 29. Railsで別のメソッドを実行する前にメソッドを呼び出す
- 30. redirectToRouteメソッド呼び出し
なぜですか?これが必要な場合は、デザインが悪いように聞こえます。 –