読者です 読者をやめる 読者になる 読者になる

MANA-DOT

PIXEL ART, PROGRAMING, ETC.

WindowsでPHPMDやPHPCSを入れてSublimeLinterでLintする

winphp4

Windows上で使っているSublimeTextSublimeLinterPHPのLintを行うためにWindows環境でPHPMDPHPCS を叩けるようにしたので、その時のメモです。

PHPCS, PHPMDとは

以前 もこのブログで触れたことが有ります。どちらもPHPのコードチェックを行うコマンドラインツールです。

PHPCSは、PSR2などのコーディング規約に違反している箇所を教えてくれるツール。

PHPMDは不必要な変数宣言などの余分なコードや、長すぎる名前・行といった、いわゆるBuggyなコードを指摘してくれるツールです。

SublimeLinterとは

SublimeLinterは、定番テキストエディタSublimeTextプラグインで、外部プログラムを利用して編集中のコードのLintを行ってくれます。様々な追加プラグインがあり、それらを追加することで様々なLintを行うことが出来ます。

今回は、SublimeLinter-phpSublimeLinter-phpmdSublimeLinter-phpcsの3つを入れ、PHPのLint環境を構築します。

インストール

MacUnix環境であれば、パッケージマネージャ経由でPHPPEARを入れてしまえば、PEAR経由でPHPCSとPHPMDをインストールすることが出来、最も簡単だと思います。Windowsの場合は、そういったものはないので、サイトからダウンロードして頑張ります。また、PHPのパッケージマネージャとしてComposerを用いました。

phpのインストール

Windows向けのダウンロードページからバイナリをダウンロードできます。適当な箇所(僕はC:\phpにしました。)に解凍します。また、SublimeLinterがたたけるように、環境変数PATHに追加します。

winphp1

コマンドプロンプトphp -vを叩き、正しくPATHが設定できていることを確認します。

C:\Users\mana>php -v
PHP 5.4.25 (cli) (built: Feb  5 2014 21:19:32)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

パッケージのインストールにComposerを使いますが、opensslのモジュールが必須なので、php.iniでopensslを有効にします。php.iniの置き場所を php -i | findstr php.ini で確認し、(僕の場合はC:\Windowsでした)

C:\Users\mana>php -i | findstr php.ini
Configuration File (php.ini) Path => C:\Windows

そのパスに解凍したphpのディレクトリにある、php.ini-productionをphp.iniという名前に変更して配置し、opensslを有効にします。php_openssl.dllはphpのディレクトリのext下にあるので、extension_dirの値も設定してあげます。あと、このphp.iniはタイムゾーンが指定されておらず、いちいちWarningがでるので、これもついでに設定。

date.timezone = Asia/Tokyo
extension_dir = "ext"
extension=php_openssl.dll

php -i | findstr openssl して、opensslモジュールが有効になっていることを確認します。

C:\Users\mana>php -i | findstr openssl
openssl

composerのインストール

images

次いで、Composerをインストールします。 UnixではCurlするだけでインストールが可能ですが、 Windowsの場合はダウンロードページWindows Installerのところに、Windows向けのインストーラが有ります。便利ですね。

winphp2

インストーラの指示に従えば問題なくインストールできると思います。途中、phpの場所を聞いてくるので、先ほど解凍した場所をしていしてやります。インストールが完了したら、composer aboutとタイプしてうまく参照できていることを確認します。

C:\Users\mana>composer about
Composer - Package Management for PHP
Composer is a dependency manager tracking local dependencies of your projects and libraries.
See http://getcomposer.org/ for more information.

また、Composerがインストールしたパッケージは、%USERPROFILE%\AppData\Roaming\Composer\vendor\bin (Windows7の場合)に実行可能なファイルが作られるので、こちらを環境変数PATHに追加しておきます。

winphp3

PHPMD, PHPCSのインストール

Composerが動くようになれば、これらのインストールはComposer経由で簡単に行えます。

composer global require squizlabs/php_codesniffer=*
composer global require phpmd/phpmd=*

以下のように、それぞれのコマンドが実行できれば問題なくインストールできています。

C:\Users\mana>phpcs --version
PHP_CodeSniffer version 1.5.2 (stable) by Squiz (http://www.squiz.net)

C:\Users\mana>phpmd --version
PHPMD @package_version@ by Manuel Pichler

これでSublimeLinterから利用する準備が整いました。

SublimeLinterを入れる

これはSublimeText に Package Controll が入っていれば一瞬です。SublimeLinterSublimeLinter-phpSublimeLinter-phpmdSublimeLinter-phpcs の4つのパッケージをインストールしましょう。

あとはSublimeTextを再起動するだけで、Lintしてくれるようになっているはずです。

winphp4

このように、unusedなローカル変数を怒ってくれたり、PSR2(特に設定していない場合のデフォルト)に反する箇所を怒ってくれたりします。

これで少しはマシなPHPライフを送れますね!