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 的其余检查,但不是那些?

4

1 回答 1

4

你有两个选择:

  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>

如果您使用该名称 [ 1 ],则会自动拾取phpcs.xml(或)文件,否则使用参数指向其文件位置。使用该文件时,您还可以更准确地指定无法使用命令行选项执行的嗅探(例如 )。phpcs.xml.dist--standardPSR12.Files.OpenTag.NotAlone--exclude

于 2020-04-08T16:33:11.087 回答