概要
「emacs で PHP_CodeSniffer を使って CakePHP のコーディング規約の逐次チェックをする方法」なんていくらでも載ってるだろうと思ったら、意外と日本語の情報が少なかったのでメモします。
Windows 7 での設定方法を書きますが、後半の emacs 周りの設定は他の OS でも同じだと思います。
手順
PHP のインストール
それすらまだだったので、そこから書きます。
- http://windows.php.net/download/ から zip をダウンロード
- 安定してそうなので VC11 x86 Thread Safe 版を落とした
- zip ファイルを好きな場所に解凍
- 参考サイトの例にならってCドライブ直下に展開 &
C:\php
にリネームした
- 環境変数
PATH
に今配置したフォルダのパスを追加 - 同フォルダ内にある
php.ini-development
をphp.ini
にリネームしてコピー
-
php.ini-development
は php の設定ファイルの開発環境向けスケルトン
以上が正しくできていれば、コマンドプロンプトで % php -v
が実行できるはずです。
pear のインストール
ruby でいう gem みたいなものを使えるようにします。
- 先の php インストールフォルダ内に pear フォルダを作る
- http://pear.php.net/go-pear.phar を pear フォルダにダウンロード
- コマンドプロンプトで pear フォルダに移動し、先のファイルを php で実行
% php go.pear.phar
- 全部デフォルトのまま or YES を選択
- 出力結果に書いてある通りに pearPEAR_ENV.reg をダブルクリック
以上が正しくできていれば、コマンドプロンプトで pear フォルダから % pear -V
が実行できるはずです。
PHP_CodeSniffer と CakePHP のコーディングルールのインストール
- pear フォルダで以下を実行:
% pear channel-discover pear.cakephp.org
% pear install cakephp/CakePHP_CodeSniffer
この作業で PHP_CodeSniffer と CakePHP のコーディング規約 (Standard) が同時に入ります。むしろこうしないと PHP_CodeSniffer のバージョンが合わなくて詰みます。
以上が正しくできていれば、コマンドプロンプトで pear フォルダから % phpcs -i
が実行できるはずです。使用できるルールとして CakePHP が含まれているはずです。
flymake-phpcs のインストール
emacs に flymake-phpcs をインストールします。package.el が入っていれば、 M-x package-list-packages
を実行して、リストから flymake-phpcs を選べば簡単にインストールできます。詳しい方法やそれ以外のインストール方法はすいませんがググってください。
インストールできたら、 .emacs に以下の設定を追記します:
(require 'flymake-phpcs)
(add-hook 'php-mode-hook 'flymake-phpcs-load)
(custom-set-variables
'(flymake-phpcs-standard "CakePHP"))
(custom-set-variables
'(flymake-phpcs-command "C:/php/pear/phpcs"))
php をCドライブ直下以外にインストールした人や、Windows 以外の人は適宜パスを修正してください。
以上で作業完了です。設定を再読み込みして php のコードを開いてみてください。適当に規約を破ると、そのあたりが赤っぽくなるはずです。動かない場合、もしかしたら別途 php-mode を入れる必要があるかもしれません。
さらなる設定
C++でプログラミングコンテストをする時用のflymakeの設定 - Qiita を参考に、次のエラー箇所にジャンプするキーバインドを設定したり、ジャンプ時にエラーの原因をミニバッファに表示したりするととても便利です(C-e を上書きするのはさすがにキツいと思いますが・・・)。