必要な時にのみxdebugをオン

  • 10
    いいね
  • 0
    コメント

xdebug付きで実行すると速度が遅いのでphpunit実行やcomposer, php-cs-fixerなどのコマンドはxdedug無しで実行します。

以前aliasを使って実行時にxdebugを指定する方法を紹介しましたが、この記事ではテストカバレッジとPhpStormの時だけxdebugを使う方法を説明します。

xdebugをオフ

普段はオフにします。php --iniで場所を調べコメントアウト。

;zend_extension = "/path/to/my/xdebug.so"

テストカバレッジ

テストカバレッジを取るときのcomposerコマンドをcomposer.jsonに追記

{
    "scripts" :{
        "coverage": ["php -dzend_extension=xdebug.so ./vendor/bin/phpunit --coverage-text --coverage-html=build/coverage"],
    }
}

phpunit.xml.distの<logging>の項目はphpunitのみ実行した時にxdebugが読み込まれてないという警告が出るので(実害はないですが)削除します。

実行はcomposerコマンドで行います。

composer coverage

PhpStorm

PhpStormでデバッカーを使ってブレイクやステップトレースにするためにxdebug.soを読み込む設定にします。

Language & Frameworks > ... > Advanced > Configuration optionsでdirectiveにzend_extension、値をxdebug.soと設定するとxdebug付きでPHP実行されるようになります。
424e3d89-f2a0-1db9-0de1-e4dd8f993285.png