PHPのデバッグ導入手順(XAMPP + Laravel + Eclipse + Xdebug)

# はじめに
最近EclipseにXdebugの導入を行ったため、導入手順を備忘録として残します。

開発環境
・windows10 pro
・XAMPP(php 7.4, Xdebug 3.1.6)
・Eclipse

予めXAMPP,Eclipseの導入が済んでいる前提で話を進めていきます。

# Xdebugの導入
## ①Xdebugのインストール
まずはXdebugのインストールが必要になります。
公式サイトからXdebugをインストールします。

ただしバージョンが複数あり、それぞれの環境によって選ぶバージョンが異なるため、下記のURLのサイトを使用します。
URL: https://xdebug.org/wizard

このサイトでは現在の自分の環境にあったバージョンを自動で選定してくれます。

それではまずXAMPPのダッシュボードに移動し、右上の「PHPinfo」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1291184/a9d3f1d9-9a11-7c42-d0c6-d323f812c96c.png)

するとこのような画面が出てくるので、「ctrl」+「a」で全選択し、コピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1291184/630f7416-f828-58cd-a5a1-d1e5cb226be5.png)

そしたら、[Installation Wizard](https://xdebug.org/wizard)に移動し、テキストボックスに先ほどコピーしたものをペーストします。
ペースト後、下の「Analyse my phpinfo() output」を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1291184/ab80d02d-498b-5c5a-4b35-d24da980490b.png)

赤く囲んだ部分にダウンロードリンクがあるので、ダウンロードします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1291184/c2cfe2ad-851c-8a91-77df-5c7f634cae63.png)

ダウンロード後、「\xampp\php\ect」のフォルダに移動させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1291184/f5c5efa2-d745-5e9b-005c-f12b403a71a9.png)


## ②XAMPPの「php.ini」を編集する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1291184/820fff40-4e1b-3617-0068-5671861a1964.png)

「php.ini」を選択し、行の一番最後に下記のコードを入力する。
ここで先ほどダウンロードしたXdebugのバージョンによって書き方が違うため、それぞれのバージョンにあわせて選択して入力してください。


```
[XDebug 2.x]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:\xampp\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_port = "9000"
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_mode = "req"
xdebug.trace_output_dir = "C:\xampp\tmp"
```

```
[XDebug 3.x]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:\xampp\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_port = 9003
xdebug.remote_handler = "dbgp"
xdebug.client_host = "127.0.0.1"
xdebug.remote_mode = "req"
xdebug.trace_output_dir = "C:\xampp\tmp"
```
「zend_extension」の部分は、先ほどダウンロードして移動させたファイルのパスを指定してください。

## ③　EclipseでXdebugの設定をする。

「ウィンドウ」タブの「設定」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1291184/7fd8b91e-443b-0d49-c015-0f25ef334059.png)

PHPのサーバーから該当のものを選択し、「編集」を押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1291184/ddeb28a2-fa25-c1a7-132a-60020c42f87e.png)

「デバッガー」タブでデバッガーで「Xdebug」を選択し、ポート番号は先ほどphp.iniに記載した「xdebug.remote_port」と同じ番号を入力する。
設定出来たら、「完了」を押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1291184/ea09d33c-0be8-14c3-27aa-30b1c8a66a81.png)

また「デバッグ」のデバッガーから「Xdebug」を選択し、「構成」を押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1291184/c604dc29-c12a-92b9-e5fb-ee702f8a8c84.png)

ここのポート番号も先ほどと同じ値を入力する。
入力出来たら、「OK」を押し、「適用をして閉じる」を押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1291184/6d67892a-f083-3905-7f24-7d3e126e190d.png)

これであとはブレーキングポイントを作り、実行すれば無事にデバッグが働くはずです！

# 参考サイト
https://www.tnrsca.jp/eclipse%E3%81%A7php%E3%82%92%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE-xampp%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95/

https://medium-company.com/eclipse-php-%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83/