Clockwork
itsgoingd/clockwork: Clockwork – php dev tools integrated to your browser – server-side component
ClockworkはLaravel内で実行された様々なデータを表示する開発者ツールの拡張です。
とりあえずの使い方は次の様にcomposerでプロジェクトにインストールして
composer require itsgoingd/clockwork
次のリンクから拡張をブラウザに追加するのみです。(Larvel5.5以前はconfig/app.phpにProvider追加が必要です。)
Clockwork – Chrome ウェブストア
Clockwork – Get this Extension for 🦊 Firefox (en-US)
これだけで基本機能は使えます。詳細な機能は製作者のドキュメントとソースコード参照です。
基本機能だけでも強力です。何ができるかというと次の5つです。
一つ目はリクエストの中身を見ることです。ルートとコントローラとの対応を見ることができますが、これ自体はChrome標準のNetworkタブの機能と大差ありません。タブ切り替えがいらない利便性が主目的でしょう。
二つ目は実行時間です。Laravel内部の実行内容で時間を区切れる点が特長です。図はいささか単純ですが、複雑化してくるとボトルネックを探すことが容易になり便利です。
三つ目はコード内で発行しているログの内容の取得です。図に使ったコードではデータベースを待ち受けてログファイルに吐き出す機能がついており、このようになっています。わざわざサーバにログファイルを取りにいかなくて済む、GUIで整理されて見やすい、といった点が特長です。
四つ目は発行されたSQL文、その発行場所と実行時間の一覧です。これは特に便利です。SQLの観点から何を改善すれば高速化できるのかがとても分かりやすいです。長時間かかるクエリ、異様に多く発行されるクエリあたりが見つかったら赤信号で、これはそれらを見つけやすくしてくれます。
五つ目はセッション情報です。普段サーバに隠れている部分であり、いちいちdumpする必要がなくなります。
基本的な機能は前述の5つですが、xdebugによるコードのステップ実行や、Clockwork備え付けのメソッドを使って特別なログを出力することも可能です。