Eclipseで使う
- Pearの場合はコマンドで実行することになります。この場合、当然ながら一通りソースを記述したあとでチェックすることになります。どうしても忘れたり、面倒だったりしてしまいます。
- ZendStudioに組み込むことで、コード記述しながらチェックでき、その場でさっと直してしまうことができます。
- http://www.phpsrc.org/projects/pti-php-codesniffer
- ZendStudioは バージョン6以降はEclipse(PDT)ベースとなっていますので、PDT環境の方も同様かと思われます。
組み込み方法
- Help > Install New Software
- Installダイアログに戻るので、PHP Tool Integration にチェックし、Nextボタンをクリック
- Install Details画面でNextボタンをクリック
- Review Licenses画面で、I accept....を選択し、Finishボタンをクリック
- Security WarningダイアログでOKボタンをクリック
- Software UpdatesダイアログでYesボタンをクリック(ZendStudioが再起動します)
- ZendStudio再起動後、メニューバー>Window>Preferenses
- PHP Tools>PHP CodeSnifferを選択、CodeSniffer Standardsを選択します。デフォルトで何種類か準備されています。カスタム定義も使用できるようです。
- Preferensesダイアログで Validationを選択、PHP CodeSniffer Validatator(for PHP Files)を選択しておけば、ビルド時にチェックしてくれます。
実行例
- Zend Standardsを使ってみた例。
- 1行が長すぎるとか、変数命名ルールに従っていない等、いろいろエラーになっています。
- もともとルールに沿っていないソースを途中から合わせるのは難しいので、開発開始時に決めておきたいですね。
実行方法
- メニューバー>Project>Build Project
- Build Automaticallyの場合は、Clean
- または、PHP Explorerからファイル選択し、右クリック>PHP Tools>PHP Codesniffer
文字化けする場合
- エラーメッセージに日本語を使用している場合、文字化けするかもしれません。
- sniffファイルをSJISに変換して、下記ファイルを設置することで解決しています。
ファイルパス
C:\Program Files (x86)\Zend\Zend Studio 9.0\plugins\org.phpsrc.eclipse.pti.library.pear_1.2.2.R20120127000000\php\library\PEAR\PHP\CodeSniffer.conf
ファイル内容
<?php
$phpCodeSnifferConfig = array(
'encoding' => 'utf-8',
);
- 事情はよくわかりませんが、PHPで記述されたsniffファイルを読み込む部分は、手元環境がWindowsのためSJISで、内部的にはUTF-8ってことなのでしょうか。