画面に出力する手法
ブラウザに直接表示されますが一応古典的なデバッグ手法としては存在します。ただ、これらの手法だとブラウザに表示されてしまうので、画面レイアウトも崩れてしまうというデメリットもあります。
echo、print
文字列を出力する。ただ、配列には対応していないです。
print_r、var_dump
文字列だけでなく、配列も出力する。
preタグで見やすくする。
そのままvar_dumpを使っただけだと見づらいのでpreタグで囲うことで縦に並べて見やすくする事が可能です。
1 2 3 |
echo("<pre>"); var_dump($array); //array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } echo("</pre>"); |
デメリット
- 多次元配列やインスタンスの出力を行うと見ずらい。
- 削除忘れでそのまま公開してしまう可能性がある。
コンソール出力する方法
error_log
これもPHPの標準関数になりますが、echoやvar_dumpと異なり画面上に表示されません。コンソール上に出力されます。
1 2 3 |
error_log($aaa); // 文字列の場合 error_log(print_r($b),true); // 配列の場合 |
ただし使う場合はphpの初期設定が必要になります。(なお、もし「php.ini」を編集できるようであればそこに設定する方法もあります。)
1 2 |
ini_set("log_errors","on"); ini_set("error_log","./php_error.log"); |
VSCodeのデバッグ
VSCodeの「PHP Debug」というプラグインを使えばできる。ただ、xdebugを導入する手順が少し面倒です。(Apacheの設定なども必要になる。)
事前準備:xdebug
ローカルのPHPでこのパッケージが入っていることが条件です。
PHPのデバッグを簡単にすることができるパッケージ。ただ、phpMyAdminというデータベースWebGUIソフトを使っている場合はこれを使っていると激重になってしまうのでその点は注意です。(WindowsであればHeidiSQL、Macであればsequelなどの代替ソフトなどを使用するようにしましょう。)
フレームワーク別
Laravel
通常ソース
dump
多次元配列なども見やすくして整形してくれます。
dd
Log::debug(変数など)
デフォルトでは「/storage/logs/laravel.log」に書き込まれます。設定によりどのログレベル以上のもののみ書き込みをおこなうか指定できます。なお、事前に「use llluminate\Support\Facades\log;」という宣言が必要になります。
bladeファイル
@dump
dumpのblade版
@dd
ddのblade版
この記事へのコメントはありません。