私のプロジェクトでは、PSR-2コード スタイリング ルールを適用し、 Codesnifferを使用して、Continues Integration を通じてコードをチェックしています。
PhpStorm を使用してコードを記述します。PhpStorm には、エラーを最小限に抑えるために、コミット前またはコードの記述中にコードを再フォーマットする機能があります。
しかし、次のルールに問題があります。
PSR2.Classes.ClassDeclaration.CloseBraceAfterBody
次のクラスがあるとしましょう。
<?php
namespace MyNamespace;
class MyClass
{
public $myVar1;
public $myVar2;
/**
* @var string
*/
public $myVar;
/**
* This is a test function
*/
public function myFunction()
{
...
}
}
コードをコミットして継続的インテグレーションを実行すると、次のエラーが発生します。
----------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
----------------------------------------------------------------------
183 | ERROR | [x] The closing brace for the class must go on the next
| | line after the body
| | (PSR2.Classes.ClassDeclaration.CloseBraceAfterBody)
----------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------
問題は、クラスの右中括弧と関数の右中括弧の間の空の行です。
タブ空白行の PhpStrom の CodeStyle 設定でIn declarations = 0
、クラスの最後の空白行が削除されるように設定すると、$myVar と $myVar2 の DocBlock の間の空白行も削除されますが、設定すると、その間の空白行が削除されますAround Field = 1
。 DocBlock と var はそこにとどまりますが、$myVar1 と $myVar2 の間に空の行があるため、必要なものが得られません。
PhpStorm が望ましい結果を得る方法が見つかりませんでした。
誰か方法があるかどうか知っていますか?