LoginSignup
7
6

More than 3 years have passed since last update.

Laravel Tinker Serverを使ったお手軽デバッグ

Last updated at Posted at 2019-07-18

Laravelでアプリケーション開発をしているとある処理時点での変数がどうなっているのか確認したい時があると思います。

Laravel Tinker Server は確認したい処理部分のコードに tinker(確認したい変数) メソッドを挟むだけで、Tinker Serverがキャッチしてターミナル上で変数を確認できたり、いじったりすることができとても便利です。

Laravel Tinker Server

from: https://github.com/beyondcode/laravel-tinker-server

インストール

$ composer require --dev beyondcode/laravel-tinker-server

オプションで設定ファイルが欲しい場合は

$ php artisan vendor:publish --provider=BeyondCode\\LaravelTinkerServer\\LaravelTinkerServerServiceProvider

使い方

使い方は簡単でTinker Serverを起動して、確認したい処理部分に tinker(確認したい変数) メソッドを挟むだけです。

Tinker Serverを起動。

$ php artisan tinker-server

確認したい処理で、tinker() を呼ぶ。

$user = App\User::find(1);

tinker($user);

複数の変数を渡すこともできます。

$user = App\User::find(1);
$posts = App\Post::all();

tinker($user, posts);

その後、アプリケーションでその処理に到達するとREPLシェルが呼ばれ、渡した変数が確認できゴニョゴニョいじることができます。

$ >> $posts->find(1);
=> App\Models\Post {#1234
  id: 1
  title: XXXX
  body: XXXXX
  created_at: XXXXX
  updated_at: XXXXX
}

さらに、td() というメソッドも提供されていて、これは dd() と似ていてインタラクティブにならずTinker Serverに変数を出力するのみの機能となっています。

変数の内容だけ確認したい場合はこちらでいいかと思います。(debugbar使っていればいらないかもしれないですが...)

まとめ

私はもともとRailsでの開発をしていて、デバッグにはRuby gemの pry を使って処理を止めてインタラクティブに変数の確認やいじることができました。

Laravelの開発でも同じことしようとすると XdebugとPHPStormまたはVSCodeなどを組み合わせたらできますが、Xdebug環境やエディタの設定が面倒な方はLaravel Tinker Serverなら簡単に使い始めることができると思います。

ただTinker Serverでは"処理を止めて" デバッグはできないですし、毎回確認したい変数を tinker() に渡さないといけないのでそこまでスマートではないので、高機能なものが欲しい方はXdebugでの開発をオススメします。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6