Windows上で使っているSublimeText の SublimeLinterでPHPのLintを行うためにWindows環境でPHPMDやPHPCS を叩けるようにしたので、その時のメモです。
PHPCS, PHPMDとは
以前 もこのブログで触れたことが有ります。どちらもPHPのコードチェックを行うコマンドラインツールです。
PHPCSは、PSR2などのコーディング規約に違反している箇所を教えてくれるツール。
PHPMDは不必要な変数宣言などの余分なコードや、長すぎる名前・行といった、いわゆるBuggyなコードを指摘してくれるツールです。
SublimeLinterとは
SublimeLinterは、定番テキストエディタのSublimeTextのプラグインで、外部プログラムを利用して編集中のコードのLintを行ってくれます。様々な追加プラグインがあり、それらを追加することで様々なLintを行うことが出来ます。
今回は、SublimeLinter-php、SublimeLinter-phpmd、SublimeLinter-phpcsの3つを入れ、PHPのLint環境を構築します。
インストール
MacやUnix環境であれば、パッケージマネージャ経由でPHPとPEARを入れてしまえば、PEAR経由でPHPCSとPHPMDをインストールすることが出来、最も簡単だと思います。Windowsの場合は、そういったものはないので、サイトからダウンロードして頑張ります。また、PHPのパッケージマネージャとしてComposerを用いました。
phpのインストール
Windows向けのダウンロードページからバイナリをダウンロードできます。適当な箇所(僕はC:\phpにしました。)に解凍します。また、SublimeLinterがたたけるように、環境変数PATHに追加します。
コマンドプロンプトで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のインストール
次いで、Composerをインストールします。 UnixではCurlするだけでインストールが可能ですが、 Windowsの場合はダウンロードページのWindows Installerのところに、Windows向けのインストーラが有ります。便利ですね。
インストーラの指示に従えば問題なくインストールできると思います。途中、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に追加しておきます。
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 が入っていれば一瞬です。SublimeLinter、SublimeLinter-php、SublimeLinter-phpmd、SublimeLinter-phpcs の4つのパッケージをインストールしましょう。
あとはSublimeTextを再起動するだけで、Lintしてくれるようになっているはずです。
このように、unusedなローカル変数を怒ってくれたり、PSR2(特に設定していない場合のデフォルト)に反する箇所を怒ってくれたりします。
これで少しはマシなPHPライフを送れますね!