skillup

技術ブログ

PHP

PHPでのデバッグ

投稿日:2017年11月16日 更新日:

基本的なことですが、PHPのdebugについておさらいを。

一般的なデバッグツール

var_dump

非常に基礎ですが、一番よく使います。print_rを使う方もいるようですが、こちらのほうがわかりやすいかと。

画面に出すときに改行されていないため、ディフォルトではわかりにくいですが、

  1. ブラウザのツールでHTML要素をみる
  2. preタグで囲む

と改行されてみやすくなっています。

xdebug

関数ではありませんが、これを使うと、

  1. var_dumpが見やすく改行される
  2. エラー発生時にスタックトレースがでるため、発生個所を追うのが楽
  3. IDEを使うとステップ実行ができる

などのメリットがあります。※php.iniなどで設定をします。

PHPのデバッグ用拡張モジュール「Xdebug」の導入方法と使い方

フレームワークのdebugツール

フレームワークなどをつかっていると画面の下にデバッグツールがでます。最近まであまり活用してませんでしたが、使えるとめちゃめちゃ使えます。

通常の変数はだせないこともありますが、SQLのログやリクエスト、セッションなどの変数を見ることができるのが便利です。

なるべく調べて活用しましょう。

dd

laravelのみ。dd()という関数で、今までだとvar_dump(); exitの発展形みたいなものです。オブジェクト形式の複雑なデータのデバッグをわかりやすくしてくれます。一般化できないか調査中。

ログに出す

画面に影響がでないのがありがたいですね。

ちなみにディフォルトだと変数しか出力できず、配列やオブジェクトの中身を出せないので、これらを出す場合には、

  1. ob_startを使ったバッファリング出力
    (参考リンク:http://skill-up-engineering.com/2017/05/23/post-2796/)
  2. var_exportやprint_rの第二引数にtrueをセットして、ログファイルに渡す
    (参考リンク:http://phpcopipe.com/post-71/)

などの方法があります。1は自力で考えたんですが、2のほうがお手軽でしょうね・・・結構長い間PHP使ってましたが、var_dumpの画面出力が多く、あまり有効活用してませんでした・・

他参考リンク

PHP開発時におけるデバッグ/プロファイリングの手段・ツール3+2選

そのほか、PHPのデバッグ情報をChromeに出すなどのこともできるようです。

-PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

PHPでのPDF出力 基本&日本語出力

今回はPHPでのPDFファイルの出力です。 Contents1 ライブラリ2 ソース3 参考リンク ライブラリ 使うライブラリはFPDFというライブラリです。 http://www.fpdf.org/ …

no image

PHP7に関して

先週きづいたのですが、PHPが5.6から7になりましたね。 まあ当分はまだPHP5で開発していきますが、herokuがいきなり7になり、アプリが動かないということが起こりました。 7対応させたかったん …

no image

PHPのPDF出力に関するエラー

PHPからFPDFなどを使ってPDFを出力するプログラムを書いたんですが、下記のエラーでかなり悩まされました。

読んで字のごとくPDF …

no image

switch(true)イディオム

switch文は通常、文字や数字で分岐をさせることが多いですが、実は条件式を入れることも可能です。 私の場合、正規表現を動的に変えたいケースがあり、検索したところ似たケースがありました。 【JavaS …

no image

cake sql系+リレーション+ヘルパー

先月末に引き続いてcakeネタをもりっといきます。 といっても自分用の小ネタリンク集です。 Contents1 sql系の小ネタ1.1 findとread1.2 find(‘count&# …

アーカイブ