NetBeans CakePHP Code Sniffer

code_sniffer_i

概要

NetBeansでCakePHPのコーディング規約をチェックする方法です。PHP_CodeSnifferを使ってチェックします。ここではCakePHPのコーディング規約について確認しますが、他のものはstandardオプションで選択すればチェックできます。

追記: プラグインポータルで配布されているものにもっと細かな設定ができるものがありましたのでそちらを使ったほうがよさそうです。

必要なもの

確認した環境

  • 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

code_sniffer_5

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 : アクション項目に一覧表示

code_sniffer_6

Ctrl + 6かウィンドウ>アクション項目でアクション項目のウィンドウを開けます。

フィルタのアイコンをクリックして、編集からPHP Violationのタイプにチェックを入れて下さい。

Step2-1-4 : 実行

エディタ上で右クリック > Check for Violations

キーマップを割り当てておくと便利です。

code_sniffer_7

こちらは最初に紹介したのですが、保存した後に、手動で再実行しないといけなかったりするので、ちょっと面倒かもしれないです。

Step2-2-1 : netbeans-php-enhancementsプラグインをインストールする

このプラグインをインストールすれば、PHP_CodeSnifferを実行してエディタ上でどこが違反しているのか表示してくれます。

上記のURLからnbmファイルをダウンロードしてNetBeansにインストールします。

Step2-2-2 : Code Snifferの設定をする

ツール > オプション > PHP >Code Sniffer

CodeSnifferのスクリプトパスを設定しStandardからCakePHPを選択してOKを押します。

code_sniffer_1

Step2-2-3 : 実行する

使い方は実行したいファイルの上で右クリック「Show Code Standard Violations」をクリックします。違反がある場所はエディタ上に表示されます。ショートカットで「Shift + F12」が設定されているようですが、7.2ではおそらく最初から登録してあるものと競合して実行できないので、キーマップで他のキーを設定しなおせば使えるようになります。

code_sniffer_2

Step2-2-4 : 一覧で確認する

ウィンドウ > アクション項目 で表示することもできます。

code_sniffer_3

code_sniffer_4

ウィンドウの左側にあるフィルタのアイコンをクリックして「編集」で「PHP Coding Standards」のところにチェックを入れるとOKです。「現在編集中のファイルのアクション項目のみ表示」の場合だけ表示されます。

ただし、ファイルを切り替えるたびに実行されるので、何も違反がなければ、ダイアログが毎回表示されてしまいます。切り替えるたびにダイアログを消さなければいけないのは面倒なので、確認するとき以外は、「現在編集中のファイルのアクション項目のみ表示」以外を選択しておいたほうがいいかもしれません。

補足2-2-1 : Windows環境で通常のドライブ以外のドライブを使う場合

標準がCドライブでDドライブ上のファイルをチェックしたい場合は、動きません。理由はworking directoryに実行したいファイルの親ディレクトリを設定しているからです。

補足 : 別のプラグイン

http://sourceforge.net/projects/phpmdnb/

こちらを使うと自動的に実行できますが、エディタの方には警告を表示できないようです。

参考

NetBeans CakePHP Code Sniffer」への3件のフィードバック

  1. ピンバック: NetBeans CakePHP フォーマットの設定 | 管理人の日記~つらつらなるままに~

  2. ピンバック: CakePHP Run PHPUnit with NetBeans | 管理人の日記~つらつらなるままに~

  3. ピンバック: CakePHP Advent Calendar 2012 #8 : NetBeans plugin の改善点 | junichi11の日記~つらつらなるままに~

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください