Как я могу частично отключить PHPCS 'PSR-12 объявлений (строгие_типы = 1) проверки? - PullRequest
0 голосов
/ 08 апреля 2020

В настоящее время я запускаю php vendor/bin/phpcs --standard=PSR12 src в нескольких CI моих проектов.

Они терпят неудачу в течение 6+ месяцев, потому что мой код организован как:

<?php declare(strict_types=1);

/**
 * This file is part of SimpleDTO, a PHP Experts, Inc., Project.
 *
 * Copyright © 2019 PHP Experts, Inc.
 * Author: Theodore R. Smith <theodore@phpexperts.pro>
 *  GPG Fingerprint: 4BF8 2613 1C34 87AC D28F  2AD8 EB24 A91D D612 5690
 *  https://www.phpexperts.pro/
 *  https://github.com/phpexpertsinc/SimpleDTO
 *
 * This file is licensed under the MIT License.
 */

namespace PHPExperts\SimpleDTO;

В настоящее время генерирует несколько предупреждений PHPCS:

--------------------------------------------------------------------------------------------
FOUND 3 ERRORS AFFECTING 2 LINES
--------------------------------------------------------------------------------------------
 1 | ERROR | [x] Header blocks must be separated by a single blank line
 1 | ERROR | [x] Opening PHP tag must be on a line by itself
 3 | ERROR | [ ] The file-level docblock must follow the opening PHP tag in the file header
--------------------------------------------------------------------------------------------

Есть ли способ сохранить остальные проверки PSR-12, но не те?

1 Ответ

1 голос
/ 08 апреля 2020

У вас есть две опции:

  1. Используйте аргумент командной строки --exclude, который позволяет вам задавать сниффы, о которых вы не хотите беспокоиться. Используя ваш пример, это будет php vendor/bin/phpcs --standard=PSR12 --exclude=PSR12.Files.FileHeader,PSR12.Files.OpenTag src

  2. Создайте файл phpcs.xml со следующей настройкой:

<?xml version="1.0"?>
<ruleset name="Custom Standard" namespace="MyProject\CS\Standard">
  <rule ref="PSR12">
    <exclude name="PSR12.Files.FileHeader" />
    <exclude name="PSR12.Files.OpenTag" />
  </rule>
</ruleset>

Файл phpcs.xml (или phpcs.xml.dist) автоматически выбирается, если вы используете это имя [ 1 ], в противном случае используйте аргумент --standard, чтобы указать местоположение файла. При использовании файла вы также можете более точно указать снифф (например, PSR12.Files.OpenTag.NotAlone), который нельзя сделать с параметром командной строки --exclude.

...