クラス内でメソッドが呼び出されるたびに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. PHP:メソッドが呼び出されるたびに実行されるマジックメソッド
- 7. PHPスクリプトでhrefリンクを呼び出して実行する
- 8. jquery ajax呼び出しはPHPスクリプトを実行しません
- 9. Ruby:initの呼び出しメソッド
- 10. JavaからPHPメソッドを呼び出す
- 11. PHPクラス:メソッド呼び出しが行われるたびに特定の関数を呼び出す
- 12. RPC呼び出しの完了他のメソッドやコードの実行?
- 13. 実行のためのメソッド呼び出しの準備
- 14. Javaユニットテストの実行中のメソッド呼び出しのリスト
- 15. Railsで別のメソッドを実行する前にメソッドを呼び出す
- 16. Windowsサービスでのメソッド呼び出しの呼び出し
- 17. 実行時にjarファイルからメソッドを呼び出す方法
- 18. PHPページへのajax呼び出しの実行
- 19. 実行許可のないPHP呼び出しのPython
- 20. 呼び出し元でクロスAppDomain呼び出しが実行されます。
- 21. LLDBデバッガでメソッドを呼び出したりコードを実行する方法は?
- 22. PHPで呼び出されないときの関数実行
- 23. PHPで以前のメソッド呼び出しをトレースする
- 24. 単体テスト中にメソッド呼び出しが試行されたが、実際には呼び出していないが、実際には呼び出さない
- 25. 別のスレッドでカスタムクラスのメソッド呼び出しを実行するには?
- 26. Android Javaメソッド呼び出し
- 27. メソッド呼び出しAST
- 28. WaitUntilExists()メソッドの呼び出し
- 29. IOSメソッド呼び出し
- 30. Eclipse - メソッド呼び出し?
なぜですか?これが必要な場合は、デザインが悪いように聞こえます。 –