В своих проектах я применяю PSR-2 правила стиля кода и я использую Codesniffer проверить мой код через Продолжение интеграции.
Я использую 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()
{
...
}
}
Когда я фиксирую свой код и выполняется Continuous Integration, я получаю следующую ошибку:
----------------------------------------------------------------------
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
----------------------------------------------------------------------
Проблема заключается в пустой строке между закрывающей скобкой класса и закрывающей скобкой функции.
Если на CodeStyle Настройки PhpStrom на вкладке Пустые строки я установил In declarations = 0
последняя пустая строка класса будет удалена, но затем будет удалена и пустая строка между DocBlock $ myVar и $ myVar2, но если я установлю Around Field = 1
тогда пустые строки между DocBlock и переменной останутся там. Но я опять не получаю то, что мне нужно, потому что между $ myVar1 и $ myVar2 будет пустая строка.
Я не нашел способ для PhpStorm получить желаемый результат.
Кто-нибудь знает, есть ли способ?
Задача ещё не решена.
Других решений пока нет …