2018/10/12
LaravelのIDEとしてNetBeansを利用しているのですが、NetBeansはXDebugを連携することができます。
XDebugとはPHP用のデバッガです。
PHP のコア開発者である Derick Rethans 氏が開発しています。
一般的なデバッガが備えているブレークポイントの設定やスタックトレース表示の拡張などに加え、var_dumpの表示拡張などPHP特有の機能も備えています。
今回はNetBeansにXDebugを連携させてデバッグ環境を構築します。
なお、NetBeansはダークテーマにしています。
目的
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 を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。