phpcs — Как разрешить одинаковые фигурные скобки при продвижении конструкторов в PHP 8

Это мой первый вопрос в StackOverflow. Я очень рад этому! ????????

Я хотел бы знать, есть ли конфигурация phpcs, которая может переопределить ту же правило фигурных скобок. Например, при использовании новой функции продвижения конструктора PHP 8 в некоторых случаях нам не нужно любое содержимое в конструкторе. Так что было бы неплохо, если бы phpcs мог разрешить этот код:

/**
 * UserService constructor
 *
 * @param UserRepository $userRepository
 * @param BillingService $billingService
 */
public function __construct(
    protected UserRepository $userRepository,
    protected BillingService $billingService
) {}

Или даже так:

/**
 * BillingService constructor
 *
 * @param BillingRepository $billingRepository
 */
public function __construct(protected BillingRepository $billingRepository) {}

Но это вызывает предупреждение, например, в VS Code, закрывающая фигурная скобка должна быть на строке сама по себе. Я не хочу отключать правило, просто автоматически разрешаю исключение при использовании продвижения конструктора.

phpcs.xml.dist выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/phpcs.xsd">
  <rule ref="PSR1"/>
  <rule ref="PSR2">
    <exclude name="PSR1.Methods.CamelCapsMethodName"/>
  </rule>
</ruleset>

Кто-нибудь знает, как этого добиться?

Спасибо за ваше время. :)


person thiagobraga    schedule 17.04.2021    source источник
comment
Вы используете последнюю версию PHPCS? Кажется, они обновили его для поддержки PHP8 9 дней назад с версией 3.6. 0. Если это не поможет, есть несколько способов отключить определенный снифф для файла (источник< /а>)   -  person PtrTon    schedule 18.04.2021
comment
Спасибо тебе друг. Я установил с помощью composer global require "squizlabs/php_codesniffer=*", поэтому не знаю, какая версия была разрешена. Я редактировал composer.json и composer update. Я точно не знаю, нужно ли мне что-то делать, но это не сработало. Глядя на журнал изменений Github, я добавил это правило <rule ref="Squiz.WhiteSpace.ScopeKeywordSpacing"/> в свой файл phpcs.dist.xml, но оно по-прежнему отображает ошибку. Спасибо за помощь.   -  person thiagobraga    schedule 18.04.2021
comment
Чтобы узнать, какая версия запущена в данный момент, вы можете запустить composer show (см. здесь). Что касается отключения, вы могли исключить другой нюх. Чтобы узнать, что именно вызывает ошибку, вы можете запустить PHPCS с параметром -s согласно этот комментарий.   -  person PtrTon    schedule 18.04.2021
comment
Кто-то создал задачу на Github для этого конкретного случая, проверьте здесь.   -  person thiagobraga    schedule 18.04.2021