Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

【Windows】XAMPPとVSCodeでPHPをデバッグ!

Last updated at Posted at 2022-12-04

Xdebug.png

Xdebugについて知ろう!

  • Xdebugとは、実際のコードの処理を上から1行ずつ自分の目で確認しながら実行できるようになるものです。
  • メリット:常に処理をリアルタイミングで確認する為、その時点での変数の中身などの把握がしやすく、条件分岐が上手く働いているかの確認が正確にできるようになります!

設定をしていこう!

  • 1:XAMPPのApacheを起動!
    XAMMP_1.png

  • 2:Visual Studio codeを開こう!
    スクリーンショット 2024-01-06 15.56.21.png

  • 3:新規でphpinfo.phpファイルを作成しましょう!
    スクリーンショット 2024-01-06 15.57.54.png

  • 4:先ほど新規作成したファイル内に下記を記載しましょう!

phpinfo.php
<?php
 echo phpinfo();
?>

スクリーンショット 2024-01-06 16.00.51.png

  • 5:ブラウザ上で作成したphpinfo.phpを開きましょう!

  • 6:phpinfo画面をControl+Aで全てコピーします!
    1.png

  • 7:Xdebug のページに先ほどコピーした内容をペーストします!
    下記がXdebug公式ページになります。
    https://xdebug.org/wizard
    スクリーンショット 2022-12-04 14.22.37.png

  • 5:dll をダウンロードします。
    スクリーンショット 2022-12-04 14.24.48.png

※ダウンロードした物を[C:\xampp\php\ext]の配下におきましょう!

  • 6:XAMMP->Config->php.iniでphp.iniファイルをメモで開きます!
  • 7:php.iniファイルの末尾に下記を追記して保存します!
    ※php.iniファイルに記載する下記の内容の内[php_xdebug-3.1.6-8.1-vs16-x86_64.dll]は先ほどダウンロードしていただいたフォルダ名に合わせてください。
php.ini
[xdebug]
zend_extension = C:\xampp\php\ext\php_xdebug-3.1.6-8.1-vs16-x86_64.dll
  • 8:Apacheを再起動させましょう!

  • 9:初回に見たphpinfoを再度確認しにいきましょう!下記の記載が追加されていればOKです!
    ※phpinfoでXdebugのVersionが3系か2系か確認する。
    下記は2系になります。
    スクリーンショット 2023-02-04 9.32.45.png
    下記は3系になります。
    image.png

  • 10:下記の内容を再度php.iniに追記しよう!

php.ini(2系)
[xdebug]

xdebug.remote_enable = 1
xdebug.remote_autostart = 1
php.ini(3系)
[xdebug]

xdebug.mode = debug
xdebug.start_with_request = yes
  • 11:VSコードを開きPHP Debugの拡張機能をインストールしよう!
    拡張機能.png

  • 12:デバックをかけるPHPファイルを開こう!

  • 13:下記のように虫のマークをクリック!
    スクリーンショット 2023-02-18 15.02.58.png

  • 14:launch.json作成リンクをクリック!

  • 15:launch.json内の下記のブロックだけを有効にしましょう!
    image.png

launch.json
{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003
        }
    ]
}
  • 16:再度デバックをかけたいPHPファイルに移動して処理を止めたい箇所にブレイクポイントをつけよう!
    スクリーンショット 2023-02-18 15.02.20.png

  • 17:下記の実行ボタンを押そう!
    スクリーンショット 2023-02-18 15.03.40.png

  • 16:ブラウザを開いてデバックをかけているPHPファイルを表示させよう!

  • 17:VSコードに戻ると止めたい処理行にハイライトが当たっているのでそこから処理を手動で進めてみよう!
    スクリーンショット 2023-02-18 15.04.04.png

ツールの使い方を知ろう!

  • メニューバーから確認できる通り、ステップ実行には3つの種類が存在します。
    スクリーンショット 2022-11-27 12.03.17.png

  • ステップイン(F11)
    最もステップ単位が小さいデバッグ方法です。基本的には1行単位で実行され、実行中に関数が含まれていた場合については、関数内部も1行単位で実行することができます。

  • ステップオーバー(F10)
    ステップインと基本的な動作は変わりませんが、実行中に関数が含まれていた場合については関数内部には入らず、関数実行後の状態(次の行)に移行します。

  • ステップアウト(shift + F11)
    現在実行している関数の残りの処理をスキップします。例えば、ステップインで関数内に入ったものの関数の残りの処理をスキップしたい場合などに使用します。

まとめ

  • xdebugはより、現場や実践向きのデバック方法ですので、今から慣れておくことで今後様々なエラーに当たっても現状を把握しやすくなりますので是非使って慣れていきましょう!
  • 次回は実際の使い方〜現場ではどんな場面で使うの?について話していきます。

参考資料

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?