概要
NetBeansでCakePHPのコーディング規約をチェックする方法です。PHP_CodeSnifferを使ってチェックします。ここではCakePHPのコーディング規約について確認しますが、他のものはstandardオプションで選択すればチェックできます。
追記: プラグインポータルで配布されているものにもっと細かな設定ができるものがありましたのでそちらを使ったほうがよさそうです。
必要なもの
- http://pear.php.net/manual/ja/package.php.php-codesniffer.php(PHP_CodeSniffer)
- https://github.com/cakephp/cakephp-codesniffer(CakePHP Code Sniffer)
- プラグインポータルで配布されているphpcsmdプラグイン (Netbeans plugin 1)
- https://github.com/beberlei/netbeans-php-enhancements/downloads (NetBeans plugin 2)
確認した環境
- Windows
- NetBeans 7.2
Step1 : PHP_CodeSnifferとCakePHP_CodeSnifferをインストールする
pearのバージョンが古いとCakePHP_CodeSnifferをインストールできないので、バージョンを上げておく。
PHP Code Snifferのプラグインはいくつか配布さているようです。ここでは2つ紹介します。
まず1つ目はプラグインポータルで配布されている、phpcsmdプラグインです。名前の通り、Code SnifferとMess Detectorを実行できます。エディタ側とアクション項目の両方に問題箇所を表示でき、保存時に問題箇所をアップデートしてくれるのでこちらを使ったほうが便利です。
Step2-1-1 : phpcsmdプラグインをインストールする
ツール > プラグイン > 使用可能なプラグイン > phpcsmd
使用可能なプラグインで「phpcsmd」で検索すればみつかります。
Step2-1-2 : phpcsmdの設定をする
ツール > オプション > PHP > PHPCSMD
General
try threading analysis | スキャン中に固まらないようにします |
update on save | 保存時に再実行します |
show notification icon | 問題があれば、右下の方にポップアプがでます。 アイコンが表示されているのでクリックすれば、いくつ問題があるのかわかります。 |
PHPCS
Script location | phpcsのパス |
–standard= | オプションの設定 |
–standardは “— you can select one of the following standards –”のところから選択することができます。
- PHPCSにチェックをいれる
- Script locationの設定をする
- –standard=はCakePHPを選択する
他にもいろいろとオプションを設定することができます。
Step2-1-3 : アクション項目に一覧表示
Ctrl + 6かウィンドウ>アクション項目でアクション項目のウィンドウを開けます。
フィルタのアイコンをクリックして、編集からPHP Violationのタイプにチェックを入れて下さい。
Step2-1-4 : 実行
エディタ上で右クリック > Check for Violations
キーマップを割り当てておくと便利です。
こちらは最初に紹介したのですが、保存した後に、手動で再実行しないといけなかったりするので、ちょっと面倒かもしれないです。
Step2-2-1 : netbeans-php-enhancementsプラグインをインストールする
このプラグインをインストールすれば、PHP_CodeSnifferを実行してエディタ上でどこが違反しているのか表示してくれます。
上記のURLからnbmファイルをダウンロードしてNetBeansにインストールします。
Step2-2-2 : Code Snifferの設定をする
ツール > オプション > PHP >Code Sniffer
CodeSnifferのスクリプトパスを設定しStandardからCakePHPを選択してOKを押します。
Step2-2-3 : 実行する
使い方は実行したいファイルの上で右クリック「Show Code Standard Violations」をクリックします。違反がある場所はエディタ上に表示されます。ショートカットで「Shift + F12」が設定されているようですが、7.2ではおそらく最初から登録してあるものと競合して実行できないので、キーマップで他のキーを設定しなおせば使えるようになります。
Step2-2-4 : 一覧で確認する
ウィンドウ > アクション項目 で表示することもできます。
ウィンドウの左側にあるフィルタのアイコンをクリックして「編集」で「PHP Coding Standards」のところにチェックを入れるとOKです。「現在編集中のファイルのアクション項目のみ表示」の場合だけ表示されます。
ただし、ファイルを切り替えるたびに実行されるので、何も違反がなければ、ダイアログが毎回表示されてしまいます。切り替えるたびにダイアログを消さなければいけないのは面倒なので、確認するとき以外は、「現在編集中のファイルのアクション項目のみ表示」以外を選択しておいたほうがいいかもしれません。
補足2-2-1 : Windows環境で通常のドライブ以外のドライブを使う場合
標準がCドライブでDドライブ上のファイルをチェックしたい場合は、動きません。理由はworking directoryに実行したいファイルの親ディレクトリを設定しているからです。
補足 : 別のプラグイン
http://sourceforge.net/projects/phpmdnb/
こちらを使うと自動的に実行できますが、エディタの方には警告を表示できないようです。
参考
- http://blog.candycane.jp/archives/949(CakePHPのコーディング規約違反をPHP_CodeSnifferでチェックする)
- http://c-brains.jp/blog/wsg/12/07/10-093000.php(PHP Storm)
- http://c-brains.jp/blog/wsg/12/07/30-094244.php (Vim)
ピンバック: NetBeans CakePHP フォーマットの設定 | 管理人の日記~つらつらなるままに~
ピンバック: CakePHP Run PHPUnit with NetBeans | 管理人の日記~つらつらなるままに~
ピンバック: CakePHP Advent Calendar 2012 #8 : NetBeans plugin の改善点 | junichi11の日記~つらつらなるままに~