2016-07-01 8 views
3

アクションごとにどれだけの時間が実行されているかを知りたい。最も簡単で正しい方法は、AOPを使用することです。Yii 2のAOPはありますか?

私はこのような何かを持っているしたいと思います:

/** 
* @FLOW3\Before("method(.*->action.*())") 
*/ 
public function markFirstTimeTag() { 
// Do something here. 
} 

... 

/** 
* @FLOW3\After("method(.*->action.*())") 
*/ 
public function markSecondTimeTag() { 
// Do something here. 
} 

は私がFLOW3と私は言っていますこのフレームワークについて読みました。しかし、これはフルスタックのフレームワークです。

Yii 2のAOPパターンの実装はありますか?

私は情報に非常に感謝します。ありがとうございます。

答えて

4

私は通常コードをプロファイリングするためにLoggingを使用します。

Yii::trace('starting some event); 
foreach(..) 
{ 
    ... 
} 
Yii::trace('some event done'); 

このトレースは、デバッグバーの[ログ]セクションにあります。

このbeforeAction()afterAction()と組み合わせて使用​​することができる(テストしていません)

public function beforeAction($action) 
{ 

    if (!parent::beforeAction($action)) { 
     return false; 
    } 

    Yii::trace($action->id.' started'); 

    return true; // or false to not run the action 
} 

public function afterAction($action, $result) 
{ 
    $result = parent::afterAction($action, $result); 
    Yii::trace($action->id.' ended'); 
    return $result; 
} 

私はまた、ドキュメント内Performance Profilingを見つけました、しかし、私は解決策のいずれかを試していません。

+0

ありがとうございます。私はそれを試してみます。 –

+0

あなたはそれを稼働させましたか? –

+0

はい、しました。再度お返事ありがとうございます。 –

関連する問題