PHP
NetBeans
xdebug

xdebug.file_link_format 使っていますか? NetBeans + XDebug + Windows を使っているなら是非!

はじめに

XDebug 関連の設定を探していたら 本家 で xdebug.file_link_format というディティクティブを見つけました。

xdebug.file_link_format

これはなに?

ブラウザに XDebug のエラーが表示された場合、それがテキストリンクになっていて、そのリンクをクリックすると IDE で該当する行へジャンプしてくれます。

NetBeans + XDebug で、または xdebug.file_link_format で検索しても、日本語説明のページがヒットしなかったので、ここに記します。もし Windows で NetBeans で XDebug を使っているなら、これを使わない手はありません。

設定手順

本家 では「Firefox on Linux」と「Windows and netbeans」の設定方法が載っています。Windows + NetBeans の方をやってみたので記します。

手順は大きく3つあります。

  1. バッチを作成し、Windows フォルダへ置く
  2. レジストリを設定する
  3. php.ini に設定を書く

1. バッチの作成

以下のテキストを netbeans.bat というファイル名で保存し、C:¥Windows などパスが通っているフォルダに置きます。

netbeans.bat
@echo off
setlocal enableextensions enabledelayedexpansion
set NETBEANS=%1
set FILE=%‾2
%NETBEANS% --nosplash --console suppress --open "%FILE:‾19%"
nircmd win activate process netbeans.exe

もし nircmd をお持ちでなかったら最後の行は削除してください。

2. 以下のテキストを netbeans_protocol.reg というファイル名で保存します。

netbeans_protocol.reg
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT¥netbeans]
"URL Protocol"=""
@="URL:Netbeans Protocol"

[HKEY_CLASSES_ROOT¥netbeans¥DefaultIcon]
@="¥"C:¥¥Program Files¥¥NetBeans 7.1.1¥¥bin¥¥netbeans.exe,1¥""

[HKEY_CLASSES_ROOT¥netbeans¥shell]

[HKEY_CLASSES_ROOT¥netbeans¥shell¥open]

[HKEY_CLASSES_ROOT¥netbeans¥shell¥open¥command]
@="¥"C:¥¥Windows¥¥netbeans.bat¥" ¥"C:¥¥Program Files¥¥NetBeans 7.1.1¥¥bin¥¥netbeans.exe¥" ¥"%1¥""

NetBeans へのパスは二回出てきます。これらは、ご自身の環境に合わせて書き換えてください。また netbeans.bat のパスも最初の手順で保存したパスと一致するよう確認しましょう。

作成した netbeans_protocol.reg をダブルクリックしてレジストリを登録します。

3. php.ini の設定

php.ini に以下のディティクティブを追加してください。

php.ini
xdebug.file_link_format = "netbeans://open/?f=%f:%l"

終ったら PHP(Apache)を再起動しましょう。

ネタ元

https://xdebug.org/docs/all_settings#file_link_format