NetBeans (CakePHP) フォーマットの設定

code_sniffer_format_i

概要

前回の記事で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
  • カテゴリ: スペース

ここでは、以下のような箇所にスペースを入れる設定ができます。

  • キーワードの前
  • 丸括弧の前
  • 演算子の周囲
  • 左中括弧の前
  • 丸括弧の内側
  • その他

code_sniffer_format_3

CakePHPのif文の場合であれば、丸括弧の前左中括弧の前で、”if”, “elseif”のところにチェックを入れましょう。他の文のスペースのフォーマットも設定しておきましょう。

中括弧の位置

classやif文などで使用する中括弧の位置の指定をします。

  • 言語: PHP
  • カテゴリ: 中括弧

code_sniffer_format_2

おそらくデフォルトで問題なかったと思います。

空行

フィールド間など空行が必要な場合は、フォーマットの

  • 言語:PHP
  • カテゴリ:空行

の設定をしておきます。

code_sniffer_format_1

フィールド間は1行開けなければいけないのでフィールド間の値を1に設定します。

※ドキュメントブロックがない場合は最下部にある「PHPドキュメントを含まないグループ・フィールド」のチェックを外しておかないと、空行が入らないので注意してください。

以下は設定できる箇所です。必要に応じて値を変更してください。

  • 名前空間の前
  • 名前空間の後
  • useの前
  • useの後
  • クラスの前
  • クラス・ヘッダーの後
  • クラス終了の前
  • クラスの後
  • フィールドの前
  • フィールドの間
  • フィールドの後
  • 関数の前
  • 関数の後
  • 関数終了の前
  • 開始タグの後
  • HTML内の開始タグの後
  • 終了タグの後
  • useトレイトの前

末尾の空白

改行を実行した行がインデントされているときに、IDEのエディタを使って改行した場合を考えます。このとき、キャレットが次の行に移るときに、移る前の行に合わせてインデントされます。そのままコードを書き始める場合は問題がないのですが、空行を作りたい場合は、空行の先頭に空白が残ったままになります。この場合も警告の表示がでます。

これは、

ツール>オプション>エディタ>一般>ファイル保存時

末尾の空白を削除を常時にしておけば保存時に自動的に余分な空白を削除してくれます。

code_sniffer_format_4

改行コード

Linux環境以外で開発していると、改行コードの警告が出るかもしれません。

NetBeansの機能には、改行コードを指定してファイルを作成する機能がありません。これはプラグインで対処するしかないようです。

プラグイン

http://plugins.netbeans.org/plugin/36810/show-and-change-line-endings

上記からダウンロードしてインストールします。

NetBeansの画面の左下に改行コードの選択ができるようになっていると思うので、「LF」を選択して保存すればOKです。

プロジェクトごとにフォーマットを設定する

プロジェクトごとにフォーマットの設定を行いたい場合は、プロジェクトのプロパティから設定することができます。

補足

ついでに書いておきますが、ドキュメントブロックは、メソッドを実装したあとに、メソッドの上の先頭行で「/**」を入力してエンターキーを押すと引数や例外、戻り値などのタグを自動的に作成してくれます。

3 thoughts on “NetBeans (CakePHP) フォーマットの設定

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

  2. ピンバック: CakePHP + NetBeans cakephp-netbeans plugin | junichi11の日記~つらつらなるままに~

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

コメントを残す

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

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