51840


PHPがメインの開発言語でXAMPPを使用している現場の場合、デバッグツールは何を使用しているのが一般的ですか。コードにブレークポイントを張って変数の中を確かめるといったデバックツールを使用しているのか知りたいと思っています。  
デバッグツールを使わない現場もあるのでしょうか。


CC BY-SA 4.0
2019-01-04T15:46:19.753
51709
2019-01-09T09:39:03.960
2019-01-04T16:04:08.240
17348
17348
question
php
PHPで使用するデバッグツールについて


Xdebug + Visual Studio Code が軽くて使いやすいですね。

Eclipseを使っていましたが、動作が重いのが難点です。


CC BY-SA 4.0
2019-01-09T05:48:12.470
51832
2019-01-09T05:48:12.470
31724
51709
answer


経験則ですが、Xdebugなどブレークポイントデバッガは半数位の現場で使用されているイメージです。  
意外とecho・ロギング・フレームワークのDebug機能のみで対処してる現場は多いです。

Xampp導入～Xdebug設定のための手順も記載しておきます。

  1. Disable IIS 
    1. Control Panel
    2. Programs and Features
    3. Turn Windows features on or off
    4. Internet Information Service
  2. Download & unzip Xampp 
    1. e.g. <https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/7.2.3/>
  3. Put it on C:\
  4. Download and setup php X Debug TS 32bit 
    1. e.g. <https://xdebug.org/files/php_xdebug-2.6.0-7.2-vc15.dll>
    2. Put it on \php\ext
    3. Add settings to \php\php.ini

[code]

    [XDebug]
    zend_extension = "C:\xampp\php\ext\php_xdebug-2.6.0-7.2-vc15.dll"
    xdebug.profiler_append=0
    xdebug.profiler_enable=0
    xdebug.profiler_enable_trigger = 0
    xdebug.profiler_output_dir="c:\xampp\tmp"
    xdebug.remote_autostart = 1
    xdebug.remote_cookie_expire_time = 36000
    xdebug.remote_enable=1
    xdebug.remote_handler="dbgp"
    xdebug.remote_host="localhost"
    xdebug.remote_port=9000
    
[/code]

5\. Run xampp-control.exe, and start Apache & MySQL

Confirm versions by shell of xampp

[code]

    httpd -v
    mysql -v
    php -v
    
[/code]

Supplement

  1. Web server's document-root is htdocs.
  2. Web site url is localhost.

↑ココまでがサーバ側（Xampp）の設定。

↓以降はエディタ側の設定（例としてVisual Studio Codeで設定）

Install

[code]

    1. Visual Studio Code (by installer)
    2. Add PHP Debug extension
    
[/code]

  1. 市販ウイルス対策ソフト、Windows Defenderなどのファイアーウォールのポート9000を開ける
  2. Visual Studio Codeで開く
  3. デバッグ実行
  4. どの環境で初期化するか聞かれる 
    * 拡張で入れたPHPを選択
    * .vscode/launch.jsonが自動生成
  5. launch.json書き換え

[code]

    {
        // IntelliSense を使用して利用可能な属性を学べます。
        // 既存の属性の説明をホバーして表示します。
        // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Listen for XDebug",
                "type": "php",
                "request": "launch",
                "port": 9000,
                "pathMappings": {
                    "/var/www/html": "${workspaceRoot}"
                }
            }
        ]
    }
    
[/code]

※１ 作業フォルダ（pathMappings）などの位置関係は、環境に応じて調整してください  
※２ なお個人的にはXamppは非推奨で、各個人がCentOSのVM立てた方が間違いが少ないかなーと思ってます


CC BY-SA 4.0
2019-01-09T09:32:30.470
51840
2019-01-09T09:39:03.960
2019-01-09T09:39:03.960
25396
25396
51709
answer