Laravel の dump をスマートにする Laravel Dump Server


概要

Laravel 5.7 から dump-server という機能が使えるようになりました。
(参考: Laravel Dump Server to Ship With Laravel 5.7 - Laravel News)

今回こちらの導入をしたので軽くまとめます。

Laravel Dump Server とは

Laravel の dump() の結果をコンソールに出力させるためのツールです。

beyondcode/laravel-dump-server: Bring Symfony's Var-Dump Server to Laravel

Laravel のヘルパ関数の dump() をそのまま実行すると、 HTTP レスポンスに割り込む形で内容が出力されるので開発時に何度もブラウザ画面をリロードせざるを得なかったりしますが、Dump Server を使うと出力がコンソールに回されるため、処理を中断されずに変数の中身を確認することが出来ます。
サーバサイドの既存機能のデバッグや改修に役立つはず。

導入方法 (共通)

リポジトリのページの記載そのままです。
詳細はGitHub にある README を参照してください。

1. composer でパッケージをインストール

composer require --dev beyondcode/laravel-dump-server

2. config ファイルを生成

config/debug-server.php が生成されます。

php artisan vendor:publish --provider=BeyondCode\\DumpServer\\DumpServerServiceProvider

導入方法 (Laradock)

Laradock で Dump Server を使いたい場合は、上記に追加で少しいじる必要がありました。

3. docker-compose.yml を編集

php-fpm の 9912 番ポートを開けます。

laradock/docker-compose.yml
php-fpm:
  ...
  ports:
    - "9912:9912"

4. workspace を再ビルドする

docker-compose build workspace

5. config/debug-server.php で host を変更

laravel/config/debug-server.php
return [
    // 公開された 9912 を参照するよう変更する
    'host' => 'tcp://workspace:9912',
];

.env で環境毎に分けるのが良さそうです。

使い方

artisan からサーバーを起動するだけです。

php artisan dump-server

起動した状態で dump() を実行すると、上記コマンドを実行したコンソール上で dump の引数に渡した値が出力されていきます。
(終了する時は ctrl + D)

HTML形式での出力も可能なようですが、そちらは今回は試していません。

参考