Как я могу частично отключить проверки PHPCS PSR-12 declare(strict_types=1)?
Я сейчас бегу 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 ответ
У вас есть два варианта:
Использовать
--exclude
Аргумент командной строки, который позволяет вам указывать сниффы, о которых вы не хотите беспокоиться. Используя ваш пример, это было быphp vendor/bin/phpcs --standard=PSR12 --exclude=PSR12.Files.FileHeader,PSR12.Files.OpenTag src
Создать
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
параметр командной строки.