LoginSignup
68
70

More than 3 years have passed since last update.

LARAVEL/PHPでよく使うデバッグ方法

Posted at

はじめに

当記事は筆者がLravel/PHPで開発している際によく使うデバッグ方法のまとめです。

dump()

dump.php
    $array = array(1,2,3,'いち','に','さん');
    dump($array);
dump.php
array:6 [
  0 => 1
  1 => 2
  2 => 3
  3 => "いち"
  4 => "に"
  5 => "さん"
]

dump()はシンプルに中の情報を表示するだけですね。
なお、処理は止まらずに死にません。

verdump()

verdump.php
    $array = array(1,2,3,'いち','に','さん');
    var_dump($array);
verdump.php
array (size=6)
  0 => int 1
  1 => int 2
  2 => int 3
  3 => string 'いち' (length=6)
  4 => string 'に' (length=3)
  5 => string 'さん' (length=6)

ver_dump()dump()と違って型が出力されます。
なお、こちらも処理は止まらず死にません。

dd()

dd.php
    $array = array(1,2,3,'いち','に','さん');
    dd($array);
dd.php
array:6 [
  0 => 1
  1 => 2
  2 => 3
  3 => "いち"
  4 => "に"
  5 => "さん"
]

一見dump()と似ていますが、dd()は処理の実行が止まって死んでいます。
要するにdd()関数がある行以降の処理は行われません。

下記の例でいうと、2行目で処理が止まっているため、三行目が実行されることはありません。

dd.php
            $array = array(1,2,3,'いち','に','さん');
            dd($array);
            array_push($array, 'よん');//←実行されない。

dd()とはdump and die の略です。

Debugbar

実務でもよく使うのがDebugbarだと思います。
特にAJAXなどを利用して内部のAPIを使う場合はdump()dd()が使えないので重宝します。

導入に関しては下記記事を参照してください。

Laravel5.7: Laravel Debugbarを使う

Debugbar.php
    public function store(Request $request)
    {
        $like = new Like;
        \Debugbar::info(1);
        $like->user_id = $request->user;
        \Debugbar::info(2);
        $like->post_id = $request->post;
        \Debugbar::info(3);
        \Debugbar::info($like);
        $like->save();

        return;
    }
info
1
info
2
info
3
info
App\Like {#322 ▶}

1,2,3は処理がどこまで実行されているか確認するためのtipsです。
4つ目のinfoで$likeの情報が取得できましたね。

viewはどうしたらいいの?

Viewに関してはテンプレートエンジンの仕様を確かめてみてください。
筆者が利用しているBladeではphpディレクティブ(@php)が利用できました。

debug.php
@php
    Debugbar::info(1);
    dump(1);
    ver_dump(1);
    dd(1);
@endphp  

終わりに

この四つさえ知っとけば、デバッグ作業で困ることはないと思います(多分)。

68
70
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
68
70