2017-11-04 15 views
1

フォロークラスA考えてみましょう:インターセプト動的関数呼び出し

public class A 
{ 
    //... 
} 

と次のスニペット:あなたはgetFooValueA上で定義されていない見ることができるように

$a = new A(); 
$value = $a->getFooValue(); 

を、I関数(このcasのfoo)で傍受して、カスタムロジックで処理したいと考えています。

私は例えばgetFooAttributeというメソッドを持つことができ、LaravelはHasAttribute特性とそれを処理するlaravel mutatorsに似た何かをしようとしています。

例えば、私がgetFooAttributeと呼んだ場合、laravelはそれを処理し、fooを理解して、属性またはミューテータがあるかどうかを調べます。

すべてのリファレンスまたはアイデアをいただければ幸いです。

答えて

2

魔法の__call()メソッドを実装すると、オブジェクトの未定義メソッドへの呼び出しを代行受信できます。詳細はhttp://php.net/manual/en/language.oop5.overloading.php#object.callを参照してください。ドキュメントから

例:

public function __call($name, $arguments) 
{ 
    echo "Calling object method '$name' " . implode(', ', $arguments). "\n"; 
} 
+0

正しい、実際に私は同様にそれを見ていると自分の質問に答えるつもりでした!ありがとう:) – Sid

関連する問題