skillup

技術ブログ

PHP

PHPでのデバッグ

投稿日:

基本的なことですが、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の第二引数にtrueをセットして、ログファイルに渡す
    (参考リンク:http://phpcopipe.com/post-71/)

などの方法があります。1は自力で考えたんですが、2のほうがお手軽でしょうね・・・

他参考リンク

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

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

-PHP
-

執筆者:


comment

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

関連記事

no image

PHPでのPDF出力 テーブル

PDFで何かを出力する場合、ほとんどが納品書や請求書などの帳票でしょう。 これらもfpdfで出力することができます。 Contents1 ソース2 サンプル3 参考リンク ソース [crayon-5a …

no image

CakePHPでのプレフィックスルーティング

cakePHPではルーティングがデフォルトでは/コントローラ名/アクション名となります。 ところが管理画面などはadmin/コントローラー名/アクション名などと変則的なURLにしたいことも多いでしょう …

no image

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

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

no image

CakePHP2系でのテスト処理

cakePHP2系でのテストの処理について。 PHPでのテストといえばphpunitが有名かと思います。cakePHPでも標準でphpunitがはいっており、ユニットテストを行うことができます。 Co …

no image

WordPressでのアイキャッチ画像

このブログと並行して更新しているガチンコ塾のブログですが、アイキャッチをブログ内にいれました。 画像をいれると文章の見やすさもだいぶ変わってくると思うので、アイキャッチの入れ方についてここに書いておき …