Sublime Text 3でxDebugを使う


導入手順

  • php.iniにxDebugの設定を記述
  • Sublime Text3にパッケージ「xDebug Client」をインストール
  • xDebug Clientの設定

環境

  • Mac
  • MAMP (PHPバージョンは5.6.33。 7.~でも手順は変わらないと思います)
  • Sublime Text3

導入

php.iniにxDebugの設定を記述

xDebugを有効化します。
MAMPの場合、xDebugはインストール済みなので有効化するだけです。

php.iniに設定を記述します。php.iniのパスは「Application/MAMP/bin/php/使用しているPHPバージョン/conf/php.ini」。
xDebugの項目はファイル末尾付近に書いています。

~~色々書いてある~~

[xdebug]
;zend_extension="/Applications/MAMP/bin/php/使用しているPHPバージョン/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"

これを以下のように変更します。

[xdebug]
zend_extension="/Applications/MAMP/bin/php/使用しているPHPバージョン/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"
xdebug.profiler_output_dir="/tmp/xdebug/"
xdebug.profiler_enable=On
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.idekey="sublime.xdebug"
xdebug.overload_var_dump = 0
xdebug.var_display_max_children = 128
xdebug.var_display_max_data = 1024
xdebug.var_display_max_depth = 10
xdebug.dump.GET= *
xdebug.dump.POST= *
xdebug.dump.SESSION= *

php.iniを保存してMAMPを再起動、起動したらphpinfoを確認してローカル環境でxDebugが有効化されているか確認しましょう。
下画像のようにxDebugの項目が表示されていれば有効化されています。

Sublime Text3に「xDebug Client」をインストール

Sublime Text3を起動したら
[ツール] -> [コマンドパレット]で表示された入力カーソルに
install Package」、「xdebug client」を順番に入力してパッケージをインストール。

これでxDebug Clientのインストールが完了です。

xDebug Clientの設定

*.sublime-projectファイル

sublime-projectファイルに以下の内容を追記します。

{
    "folders":
    [
        {
            "path": "/Users/2t0/Sites/ginza-print.com_git"
        }
    ],
    //ここから
    "settings":
    {
        "xdebug":
        {
            "url": "http://プロジェクトのURL/",
        }
    }
    //ここまで
}

Xdebug.sublime-settingsファイル

[ツール] -> [Xdebug] -> [settings - user]からxDebug Clientのカスタマイズができます。
以下は実際に自分が設定したものになります。

{
  // コンテキストでのスーパーグローバル変数の表示。trueで表示される
  "super_globals": true,
  // コンテキストに表示される変数の階層数
  "max_depth": 10,
  // PHPエラーが出た時点ブレークする。falseにするとエラー箇所でもブレークしなくなる。fatalエラーのみブレークするなど、エラーレベルの設定も可能
  "break_on_exception": false
}

その他の設定はXdebug Clientのパッケージページで確認できます。
Xdebug Client - Packages - Package Control

/etc/bashrcファイル

以下を追記します。
追記した後はターミナルからsource /etc/bashrcでbashrcを再読み込みします。

# User specific aliases and functions
export XDEBUG_CONFIG="idekey=sublime.xdebug"

xDebugを使う

  • ソースコード上で、ブレークポイントを置きたい場所で「⌘ + F8
  • [ツール] -> [Xdebug] -> [Start Debugging]でデバッグを開始します。(「⌘ + Shift + F9」)
  • デバッグしたいページのURL末尾に「?XDEBUG_SESSION_START=sublime.xdebug」のパラメータをつけてアクセス。ブレークポイントを置いた箇所でブレイク。
  • 次のブレークポイントに移るには「⌘ + Shift + F5
  • ステップインは「⌘ + Shift + F6

ブレークポイント時点での変数の確認が「Xdebug Context」のウィンドウで確認できます。ステップインで関数の書いてある場所もすぐわかる。

dumpとかprint_rとかもう書かなくてよくなりそう…

ここまで。