在我的项目中,我应用PSR-2代码样式规则,并使用Codesniffer通过 Continues Integration 检查我的代码。
我使用 PhpStrorm 编写代码,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 获得理想结果的方法。
有谁知道有没有办法?