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のライブラリ(mcrypt)インストール

先日、ローカルで開発していたPHPをサーバーにアップして、composerでライブラリをアップデートしようとしたところ、 "The mcrypt extension is missing. Please check your PHP configuration." なるエラー …

no image

FastCGIに関して

nginxについて学習してきましたが、今回はphp-fpmについてです。 Contents1 そもそもの構成2 CGIのメカニズム3 FastCGI4 nginxでの設定に関して4.1 fastcgi …

no image

cakePHP小ネタ集(Authの複数認証)

最近よく触っているcakePHPの小ネタなど。 Contents1 Authコンポーネント 複数の認証2 自動のdivタグを出力しない3 Cakeでのプルダウン作成 Authコンポーネント 複数の認証 …

no image

CakePHPのcomponent

CakePHPのComponentについて。 CakePHPでは各コントローラに共通の処理をComponentとしてモジュール化することができます。 わかりやすいところでいえば認証のAuth,Sess …

no image

cakePHPの認証-Authコンポーネント

ひさびさにPHPをやる機会があり、短期での開発だったため、cakePHPを使いました。 以前やったことがあったんですが、もう2年以上たっていますね。 といいつつも昔のソースを見ながらやることで思い出し …

アーカイブ