概要
前回の記事でCode Snifferを使って、NetBeansのエディタにコーディングスタイルの違反箇所を表示する方法を紹介しました(NetBeans CakePHP Code Sniffer)。今回は、違反が表示された箇所のなかで、空白や空行の修正に、フォーマットの機能を使う方法を紹介します。他の警告はメッセージ通りに手動で修正してください。
コーディング規約
コーディング規約については下記に書かれています。
http://book.cakephp.org/2.0/ja/contributing/cakephp-coding-conventions.html
フォーマットの実行
フォーマットの実行は、エディタ上でフォーマットしたい範囲を選択して右クリック>フォーマットもしくは、Alt + Shift + Fでオプションで設定した通りにスペースやインデントの処理がされます。
★フォーマットの設定にドキュメントブロックの設定がないために、範囲選択をしないまま実行してしまうと、ドキュメントブロックがメソッドやフィールドの位置と同じ位置にインデントされてしまいます。(CakePHPではドキュメントブロックはインデントなしの行頭に記載することになっています。)
以下はオプションの設定方法です。
インデント・スペース
インデントはスペースではなく、タブで行います。
if文やfor文などで演算子や括弧の間でスペースを入れる方法はいくつかあると思います。例えば、if($hoge == true){}, if ($hoge==true) {}, if ( $hoge == true ) {}…などがあります。CakePHPではif ($hoge == true) {}が正しいコーディングスタイルです。
複数箇所でこのスペースの警告が出た場合は、NetBeansのフォーマットの機能を使うことで簡単に修正することができます。
まずは、どのようにインデントやスペースを入れるようにするのか設定するところから始めます。
ツール>オプション>エディタ>フォーマット
- 言語: PHP
- カテゴリ: タブとインデントI
[タブをスペースに展開]の部分にチェックが入っていなければOKです。入っていればチェックを外しておきましょう。
- 言語: PHP
- カテゴリ: スペース
ここでは、以下のような箇所にスペースを入れる設定ができます。
- キーワードの前
- 丸括弧の前
- 演算子の周囲
- 左中括弧の前
- 丸括弧の内側
- その他
CakePHPのif文の場合であれば、丸括弧の前と左中括弧の前で、”if”, “elseif”のところにチェックを入れましょう。他の文のスペースのフォーマットも設定しておきましょう。
中括弧の位置
classやif文などで使用する中括弧の位置の指定をします。
- 言語: PHP
- カテゴリ: 中括弧
おそらくデフォルトで問題なかったと思います。
空行
フィールド間など空行が必要な場合は、フォーマットの
- 言語:PHP
- カテゴリ:空行
の設定をしておきます。
フィールド間は1行開けなければいけないのでフィールド間の値を1に設定します。
※ドキュメントブロックがない場合は最下部にある「PHPドキュメントを含まないグループ・フィールド」のチェックを外しておかないと、空行が入らないので注意してください。
以下は設定できる箇所です。必要に応じて値を変更してください。
- 名前空間の前
- 名前空間の後
- useの前
- useの後
- クラスの前
- クラス・ヘッダーの後
- クラス終了の前
- クラスの後
- フィールドの前
- フィールドの間
- フィールドの後
- 関数の前
- 関数の後
- 関数終了の前
- 開始タグの後
- HTML内の開始タグの後
- 終了タグの後
- useトレイトの前
末尾の空白
改行を実行した行がインデントされているときに、IDEのエディタを使って改行した場合を考えます。このとき、キャレットが次の行に移るときに、移る前の行に合わせてインデントされます。そのままコードを書き始める場合は問題がないのですが、空行を作りたい場合は、空行の先頭に空白が残ったままになります。この場合も警告の表示がでます。
これは、
ツール>オプション>エディタ>一般>ファイル保存時
で末尾の空白を削除を常時にしておけば保存時に自動的に余分な空白を削除してくれます。
改行コード
Linux環境以外で開発していると、改行コードの警告が出るかもしれません。
NetBeansの機能には、改行コードを指定してファイルを作成する機能がありません。これはプラグインで対処するしかないようです。
プラグイン
http://plugins.netbeans.org/plugin/36810/show-and-change-line-endings
上記からダウンロードしてインストールします。
NetBeansの画面の左下に改行コードの選択ができるようになっていると思うので、「LF」を選択して保存すればOKです。
プロジェクトごとにフォーマットを設定する
プロジェクトごとにフォーマットの設定を行いたい場合は、プロジェクトのプロパティから設定することができます。
補足
ついでに書いておきますが、ドキュメントブロックは、メソッドを実装したあとに、メソッドの上の先頭行で「/**」を入力してエンターキーを押すと引数や例外、戻り値などのタグを自動的に作成してくれます。
ピンバック: CakePHP Run PHPUnit with NetBeans | 管理人の日記~つらつらなるままに~
ピンバック: CakePHP + NetBeans cakephp-netbeans plugin | junichi11の日記~つらつらなるままに~
ピンバック: CakePHP Advent Calendar 2012 #8 : NetBeans plugin の改善点 | junichi11の日記~つらつらなるままに~