>>前に戻る

MethodExecution

1. Join Point

Method definition.

2. Target AST element

AOWP_PHPMethodElement

3. ジョインポイントを選択するポイントカット

AOWP_MethodExecutionPointcut

4. ポイントカットで指定できるパラメータ

修飾子
クラス名
メソッド名
引数の数

5. アドバイス本体内で使用できるコンテキスト情報

以下の表に記したコンテキスト情報がアドバイス本体内で使用できます。

表 アドバイス本体内で使用できるコンテキスト情報

仮引数 戻り値 インスタンス
BeforeAdvice ×
AfterAdvice
AroundAdvice ×

仮引数の取得は func_get_args( ) によって行っています。全てのアドバイス本体内で、
   $args0 = $context->args[0];
のように、配列として仮引数の値は使用できます。

Afterアドバイスは関数終了後に実行されるので、その関数の戻り値をアドバイス本体内で、
   $retVal = $context->returnValue;
として、使用することができます。Beforeアドバイスは、関数実行前に実行されるので、戻り値は利用できません。Aroundアドバイスは、関数定義そのものを置換するので、戻り値は利用できません。ただし、アドバイス本体内で proceed を実行した場合の戻り値は利用できます。

全てのアドバイスは、そのアドバイス本体内で、当ジョインポイントのインスタンスが利用できます。
   $instance = $context->instance;

6. 複数のアドバイスが当ジョインポイントに織り込まれる場合の挙動

複数のアドバイスが、当ジョインポイントに織り込まれる場合、FunctionExecutionと同じ動きをします。省略します。

7. 例外の扱い

afterアドバイスの実行以前に例外がスローされた場合、afterアドバイスは実行されません。