13

phpcsコード スニファで適用するコード スタイルを見つけようとしています。

Symfony2 の人気以来、そのコード標準を使用することは良い習慣のようです。一方、そのコード スタイルは PSR2 に基づいているため、これは使用する必要がある最も基本的なスタイルのようです。

さらに、 の基本的なインストールでsquizlabs/php_codesnifferは、Symfony2 標準は含まれておらず、手動でインストールする必要がありますが、PSR2 は簡単に入手できます。

したがって、どちらを使用するかを決定するために、PSR2 と比較した Symfony2 ガイドラインの主な違いを知りたいです。

たとえば、Symfony2 スタイルではそれが強制されますがConcat operator must not be surrounded by spaces、PSR2 ではこのケースが無視されることに気付きました。しかし、違いをリストする簡単な方法は見つかりませんでした。を調べましたrulseset.xmlが、どのように設定されているかわかりませんでした。

PSR2 と Symfony2 のコード標準の違いの完全なリストを取得する方法に興味があります。

4

2 に答える 2

19

Symfony コーディング標準は、基本的に PSR 標準を拡張します。PSR-2はすべての状況に対するルールを指定しているわけではないため、Symfony 標準では PSR-2 の上にいくつかのルールを追加しています。

あなたが言ったように、PHP CodeSniffer リポジトリには Symfony のルールセットが含まれていません。Symfony2 ルールセットには複数のサードパーティ実装があるため、それらと PSR-2 ルールセットの違いの正確なリストは、選択した実装によって異なります。

ただし、Symfony と PSR の標準 (PHP CodeSniffer のルールセットではない) の違いを見ると、Symfony の標準によるいくつかの追加は次のとおりです。

  • 連結演算子の前後にスペースを追加しない ( .)
  • 複数行の配列内の各配列項目の後に、最後の項目の後でもコンマを追加する
  • return ステートメントの前に空白行を追加する (return がステートメント グループ内に単独である場合を除く (if ステートメントのように))
  • メソッドの前にクラス プロパティを宣言する
  • 最初に public メンバーを宣言し、次に protected、次に private を宣言します (クラス コンストラクターとPHPUnit クラスの メソッドsetUpとメソッドを除く)。tearDown

これらはほんの一例です。完全なリストについては、Symfony コーディング標準を参照してください。

私の意見では、Symfony の標準は理にかなっており、Symfony プロジェクト以外でも、できる限り標準を使用するようにしています。

于 2015-06-18T09:57:14.980 に答える