[Laravel5] API開発時のプロファイルはClockworkで
こんにちは、ナカエです。
HTMLを利用するWebサイトのパフォーマンスチューニングをする際にはDebugbarにお世話になっていますが、API開発をする場合はClockworkが手軽で便利です。 デバッグのための情報がHTMLに挿入されるのではなく、Chromeのデベロッパーツールで確認できるようになります。
1. Chrome拡張の導入
Chromeウェブストアからインストールします。
2. サーバ側のパッケージの導入とLaravel側の設定
[itsgoingd/clockwork](https://github.com/itsgoingd/clockwork) を利用します。
composerでインストール
composer require itsgoingd/clockwork
サービスプロバイダの設定
config/app.php
'providers' => [
...
Clockwork\Support\Laravel\ClockworkServiceProvider::class,
],
コマンドラインからconfigファイルを生成
$ php artisan vendor:publish --provider="Clockwork\Support\Laravel\ClockworkServiceProvider"
Copied File [/vendor/itsgoingd/clockwork/Clockwork/Support/Laravel/config/clockwork.php] To [/config/clockwork.php]
Publishing complete for tag []!
config/clockwork.php
ここに有効無効の設定'enable'があり、nullの場合はapp.debugの値が参照されます。ミドルウェアの設定
app/Http/Kernel.phpのミドルウェアを書き足します。
protected $middlewareGroups = [
'api' => [
\Clockwork\Support\Laravel\ClockworkMiddleware::class,
...
],
];
Laravelのバージョンによってはプロパティが違います。
protected $middleware = [
\Clockwork\Support\Laravel\ClockworkMiddleware::class,
...
];
挿入位置は全てをプロファイルするためには一番外側が良いでしょう。
3. Chromeのデベロッパーコンソールを確認
Clockworkタブが追加され、ログ・データベースクエリ、タイムラインなどがリクエストごとに確認できるようになります。
4. clock() ヘルパ
clock()というヘルパ関数が追加され、ログや処理時間の計測に利用できるようになっています。
clock()->startEvent('event_name', 'Event 開始.');
clock()->endEvent('event_name', 'Event 終了.');