[Windows] PHPMDを導入してAtomで使用する方法

Windows 上の PHP環境で PHPMD を利用してみる。

#環境

こんな人向け。

  • Windows で開発
  • PHPの実行はゲストOS上(Vagrantなど使用)で行っているが、コーディングはWindows上

#PHPの環境を構築する

WindowsでPHPを簡単に構築するなら、XAMPP
もしPHPの動作環境がWindows上にないなら入れておく。

Eclipseに同梱されているものでも良い。

XAMPPを導入した場合、以下にPHPの各モジュールが配置される。

C:\xampp\php

#Composerを導入

公式サイトにWindowsのインストーラも用意されているが、自分の環境では上手く行かなかった。なので、インストーラは使わないで導入したいと思う。

#OpenSSL

あらかじめOpenSSLを有効にしておく必要がある。(XAMPPは有効になっていた)
php.iniの以下のコメントアウトを外す。

;extension=php_openssl.dll

#Composer

以下のコマンドで導入できる。

C:\xampp\php>php -r "readfile('https://getcomposer.org/installer');" | php

#PHPMDのインストール

#composer.json

php のあるディレクトリ(自分の場合は c:\xampp\php)に以下の様なcomposer.jsonを配置する。
(PHPCSも一緒に入れたのでこんな風になっているが…)

{
    "require": {
        "squizlabs/php_codesniffer": "*",
        "phpmd/phpmd": "*"
    }
}

#composer install

以下のコマンドを実行する。

C:\xampp\php>php composer.phar install

完了するとPHPMDが導入されているはず。

#確認

同じ手順を踏んでいれば以下にPHPMDが配置されている。

C:\xampp\php\vendor\bin\phpmd

#Atomで使用する

#Linter

以下のLinterをインストールする。

apm install linter
apm install linter-phpmd

#linter-phpmdの設定

.atom/config.csonに以下の記述をする。

"linter-phpmd":
    executablePath: "C:\\xampp\\php\\vendor\\bin\\phpmd"
    rulesets: "cleancode,codesize,controversial,design,unusedcode"

rulesetsはお好みで。

#確認

適当なphpファイルを編集してみる。(保存など)
問題があった場合、指摘箇所に波線が表示され、指摘を修正すると表示が消える。