App::Finishコールバックの登録方法


 悩み事

リクエスト処理後にアプリケーションが終了する前に任意の処理を実装したい

 解決方法

App::finish()メソッドを利用して、コールバック処理を実装することができます

\App::finish(function($request, $response) {

    // リクエストやレスポンスの内容を使って、
    // 処理内容をログに出力したり、様々な処理を記述できます
});

$request$responseはコールバックで利用しますが、
そのものは変更されないため、アプリケーションには影響しません

 アドバイス

どこでコールバックを登録できるのでしょうか?

App::finish()はサービスプロバイダーをはじめ、
app/start/global.phpなどに記述しておけば、実行されます
"どこのファイルに書けばいいですか?"という質問が多いですが、
これらは処理の中でも遅い段階で実行されるため、
ファイルの設置場所や、記述場所は気にせず記述することができます

リクエストのライフサイクルについて理解するを参考にしてみてください
最後のステップである 実行手順 に記述されています


Author:Chuck Heintzelman

Editor and Translator:Yuuki Takezawa