spryker/code-sniffer

Spryker 代码嗅探器标准

安装量: 3,325,569

依赖: 2,259

建议者: 0

安全: 0

星标: 36

关注者: 64

分支: 11

开放问题: 7

类型:phpcodesniffer-standard


README

CI Latest Stable Version Minimum PHP Version PHPStan License Total Downloads

此嗅探器包完全遵循 PSR-2 并附带大量附加修复程序(包括 PSR-12)。请参阅 Spryker 编码规范以获取详细信息。

包含的嗅探列表。

文档

docs.

上游文档: squizlabs/PHP_CodeSniffer/wiki

用法

如何在 Spryker 项目中使用

确保您将嗅探器作为 require-dev 依赖项包含

composer require --dev spryker/code-sniffer

开发模块提供了一个便捷命令

console code:sniff:style

(或 console c:s:s 作为快捷方式)

要自动修复可修复的错误,请使用

console code:sniff:style -f

-v 对于输出更多信息很有用。要运行特定的嗅探,请使用 -s 选项。见 -h 以获取帮助。

您还可以嗅探特定项目级别的模块或路径

console code:sniff:style [-m ModuleName] [optional-sub-path] -v

在任何项目中使用的方法

您还可以手动调用 phpcs/phpcbf 命令

vendor/bin/phpcs --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml ./
vendor/bin/phpcbf --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml ./

phpcs 只进行嗅探,phpcbf 进行修复。

您可能想要忽略某些文件夹,例如 --ignore=vendor/ 或您的测试用例文件夹中的某些文件夹。

标准

您始终可以将标准切换到名为 SprykerStrict 的更严格的标准。它是 Spryker 标准的扩展,在其上方添加了自己的(严格)嗅探器。

如何在 IDE 中包含

例如,对于 PHPStorm

  • 打开设置 -> 工具 -> 外部工具
  • 添加一个名为 "cs-sniffer" 的新工具,并将程序设置为 $ProjectFileDir$/vendor/bin/phpcs,参数设置为 --standard=$ProjectFileDir$/vendor/spryker/code-sniffer/Spryker/ruleset.xml -p $FilePath$,工作目录设置为 $ProjectFileDir$
  • 添加一个名为 "cs-fixer" 的新工具,并将程序设置为 $ProjectFileDir$/vendor/bin/phpcbf,参数设置为 --standard=$ProjectFileDir$/vendor/spryker/code-sniffer/Spryker/ruleset.xml -v $FilePath$,工作目录设置为 $ProjectFileDir$
  • 如果您不希望在修复程序中看到任何输出,请删除 "打开控制台"。
  • 现在在设置 -> 快捷键(搜索 cs-sniffer 和 cs-fixer)下设置您的热键。例如,Control + Comma 用于嗅探,Control + Dot 用于修复。

您还可以设置文件监视器,但在这里您最好只将某些仅添加内容而不删除内容的嗅探器列入白名单。

如何配置默认规则集

为了简化命令行界面,phpcs 允许您通过以下方式指定 默认规则集标准路径

假设以下目录结构

vendor/spryker/code-sniffer/                          # Base directory
                           |_ Spryker/                # Rule set name
                                      |_ ruleset.xml  # Rule set

现在可以使用基本目录和规则集进行配置。

vendor/bin/phpcs --config-set installed_paths vendor/spryker/code-sniffer/
vendor/bin/phpcs --config-set default_standard Spryker

您可能需要指定完整的目录路径。现在工具可以在不使用 --standard 开关的情况下使用。

使用自己的项目标准

您可以通过提供自己的 ruleset.xml 来交换或扩展 Spryker 编码标准。这可以在开发模块配置中进行配置

// DevelopmentConfig.php

    /**
     * Either a relative or full path to the ruleset.xml or a name of an installed
     * standard (see `phpcs -i` for a list of available ones).
     *
     * @return string
     */
    public function getCodingStandard()
    {
        return '/path/to/your/ruleset.xml';
    }

如果您用于自定义项目,只需使用 --standard 将其指向您的规则集文件。

请确保您的自定义规则集中包含 Spryker 核心标准规则集,例如。

<?xml version="1.0"?>
<ruleset name="SprykerProject">
    <description>
        Spryker Coding Standard for Project.
        Extends main Spryker Coding Standard.
        All sniffs in ./Sniffs/ will be auto loaded
    </description>

    <rule ref="vendor/spryker/code-sniffer/Spryker/ruleset.xml"/>

    <exclude-pattern>*/src/Generated/*</exclude-pattern>
    <exclude-pattern>*/src/Orm/*</exclude-pattern>
    <exclude-pattern>*/tests/_support/_generated/*</exclude-pattern>
    <exclude-pattern>*/tests/_helpers/*</exclude-pattern>
    <exclude-pattern>*/tests/_output/*</exclude-pattern>
    <exclude-pattern>./data/DE/*</exclude-pattern>

    <!-- Define your own sniffs here -->
</ruleset>

如果您想在项目中使用 SprykerStrict 标准,应替换以下字符串

<rule ref="vendor/spryker/code-sniffer/Spryker/ruleset.xml"/>

为这个字符串

<rule ref="vendor/spryker/code-sniffer/SprykerStrict/ruleset.xml"/>