XDebug×NetBeansによるデバッグ環境の構築

2018/10/12

LaravelのIDEとしてNetBeansを利用しているのですが、NetBeansはXDebugを連携することができます。

XDebugとはPHP用のデバッガです。

PHP のコア開発者である Derick Rethans 氏が開発しています。

一般的なデバッガが備えているブレークポイントの設定やスタックトレース表示の拡張などに加え、var_dumpの表示拡張などPHP特有の機能も備えています。

今回はNetBeansにXDebugを連携させてデバッグ環境を構築します。

なお、NetBeansはダークテーマにしています。

NetBeansでLaravel開発

 

目的

LaravelのプロジェクトにNetBeans+XDebugを利用する

 

手順

【1】ローカル開発環境の変更

 -(1 wwwフォルダを移動/publicにリネーム

 -(2 httpd.confを変更

 -(3 gitignoreでpublicフォルダを追加

【2】XDebugの設定

 -(1 php.ini の編集

【3】NetBeansの設定

 -(1 プロジェクト・プロパティの設定

 -(2 オプションの設定

 -(3 XDebugの起動

 

【1】 ローカル開発環境の変更

(1 wwwフォルダを移動/publicにリネーム

僕のローカル開発環境の場合、サクラレンタルサーバにあわせているのでpublicフォルダをwwwにリネームしてLaravelプロジェクトの1階層上に置いています。

ローカル環境の整備

この場合、この先で設定するNetBeansの『ルータ・スクリプト』の設定が上手くいかないので変更します。

Laravelプロジェクトの一階層上に置いていたwwwフォルダをpublicにリネームして、Laravelプロジェクトの中に入れます。

そのあと、/public/index.phpのファイルを編集します。

require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

要はデフォルトの状態に戻します。

 

(2 httpd.confを変更

WEBルートを変更したのでhttpd.confファイルを編集します。

<VirtualHost *:80>
# Laravel学習帳
DocumentRoot "C:/xampp/htdocs/user/public"
ServerName local.laraweb.sakura.ne.jp
</VirtualHost>

 

(3 gitignoreでpublicフォルダを追加

以前、Gitでプッシュしたら自動でデプロイするように設定しました。

レンタルサーバに自動デプロイ

このままだとGitでプッシュしたときにpublicフォルダもサーバにアップロードされるのでgitignoreファイルにpublicフォルダを追加します。

/vendor
/node_modules
/public/storage
Homestead.yaml
Homestead.json
.env
/nbproject/private/

# 追加
/public/

これでpublicフォルダはアップロードされません。

 

【2】XDebugの設定

(1 php.ini の編集

XDebugはXAMPPをインストールすると自動的にはいっています。

なのでphp.iniの設定をするだけで起動します。

C:\xampp\php\php.iniの末尾に以下のように記述します。

[XDebug]
zend_extension="C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable=1
xdebug.remote_autostart=on
xdebug.remote_handler="dbgp"
xdebug.remote_host="127.0.0.1"
xdebug.remote_port=9000
xdebug.idekey="netbeans-xdebug"
xdebug.remote_mode=req

記述したらxamppのapacheを再起動してphpinfoを確認します。

 

 
xdebugの項目が表示されていたらOKです。

 

【3】NetBeansの設定

(1 プロジェクト・プロパティの設定

左側にあるプロジェクト名を選択して右クリック。

『プロパティ』を選択します。

『プロジェクト・プロパティ』が開くのでカテゴリ -> 実行構成 を選択します。

【解説】
実行方法:PHP組み込みWEBサーバー(組み込みWEBサーバーで実行中)
 ⇒BootstrapをCDNではなくローカルで利用する場合は『ローカルWEBサイト』を選択

ホスト名:local.laraweb.sakura.ne.jp
 ⇒ホスト名はご自身の環境にあわせてください

ポート:80

ルータ・スクリプト:public/index.php
 ⇒手順【1】の(1 で作業したところのことです

 

(2 オプションの設定

デフォルトの設定ではindex.phpの22行目で必ずいったんブレイクしてしまいます。

ツール⇒オプション⇒PHPの画面で「最初の行で停止(T)」のチェックを外せば、最初の行で止まることはなくなります。

 

(3 XDebugの起動

ツールバーの「デバッグ」⇒「プロジェクトをデバッグ」で実行します。

これでPHPが持っているWebサーバーでLaravelが実行され、netbeans-xdebugがローカルブラウザと通信します。

 
そして結果として、ブラウザで操作しながら、NetBeansのPHPがステップ実行されます。

xdebug×NetBeansによるデバッグ環境の構築については以上です。

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-環境構築