symplify/easy-coding-standard-prefixed

此包已被弃用且不再维护。作者建议使用 symplify/easy-coding-standard 包。

ECS 包的前缀版本

v9.3.1 2021-05-04 18:48 UTC

This package is auto-updated.

Last update: 2021-05-07 09:45:30 UTC


README

Downloads total

ECS-Run

特性

  • 使用 PHP_CodeSniffer || PHP-CS-Fixer - 你喜欢的任何东西
  • 第二次运行只需几秒钟(使用未更改的文件缓存)
  • 跳过特定检查器的文件
  • 预定义集合 - PSR12、Symfony、通用、数组、Symplify 等...
  • 前缀版本,以防安装时发生冲突

你已经在使用其他工具了吗?

安装

composer require symplify/easy-coding-standard --dev

前缀版本

当存在依赖冲突时可以使用前缀版本。有关更多信息,请访问 "Easy Coding Standard Prefixed" 存储库

composer require symplify/easy-coding-standard-prefixed --dev

使用方法

1. 创建配置并设置检查器

  • 在您的根目录中创建一个 ecs.php
  • 添加 Sniffs
  • ...或者您想使用的 Fixers
// ecs.php
use PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\EasyCodingStandard\ValueObject\Set\SetList;

return static function (ContainerConfigurator $containerConfigurator): void {
    // A. standalone rule
    $services = $containerConfigurator->services();
    $services->set(ArraySyntaxFixer::class)
        ->call('configure', [[
            'syntax' => 'short',
        ]]);

    // B. full sets
    $containerConfigurator->import(SetList::PSR_12);
};

2. 在命令行中运行

# dry
vendor/bin/ecs check src

# fix
vendor/bin/ecs check src --fix

特性

如何加载自己的配置?

vendor/bin/ecs check src --config another-config.php

配置

配置可以扩展多个选项。以下是一份列表,包括示例值和简要说明它们的作用

use PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\EasyCodingStandard\ValueObject\Option;

return static function (ContainerConfigurator $containerConfigurator): void {
    $parameters = $containerConfigurator->parameters();

    // alternative to CLI arguments, easier to maintain and extend
    $parameters->set(Option::PATHS, [__DIR__ . '/src', __DIR__ . '/tests']);

    // run single rule only on specific path
    $parameters->set(Option::ONLY, [
        ArraySyntaxFixer::class => [__DIR__ . '/src/NewCode'],
    ]);

    $parameters->set(Option::SKIP, [
        // skip paths with legacy code
        __DIR__ . '/packages/*/src/Legacy',

        ArraySyntaxFixer::class => [
            // path to file (you can copy this from error report)
            __DIR__ . '/packages/EasyCodingStandard/packages/SniffRunner/src/File/File.php',

            // or multiple files by path to match against "fnmatch()"
            __DIR__ . '/packages/*/src/Command',
        ],

        // skip rule completely
        ArraySyntaxFixer::class,

        // just single one part of the rule?
        ArraySyntaxFixer::class . '.SomeSingleOption',

        // ignore specific error message
        'Cognitive complexity for method "addAction" is 13 but has to be less than or equal to 8.',
    ]);

    // scan other file extendsions; [default: [php]]
    $parameters->set(Option::FILE_EXTENSIONS, ['php', 'phpt']);

    // configure cache paths & namespace - useful for Gitlab CI caching, where getcwd() produces always different path
    // [default: sys_get_temp_dir() . '/_changed_files_detector_tests']
    $parameters->set(Option::CACHE_DIRECTORY, '.ecs_cache');

    // [default: \Nette\Utils\Strings::webalize(getcwd())']
    $parameters->set(Option::CACHE_NAMESPACE, 'my_project_namespace');

    // indent and tabs/spaces
    // [default: spaces]
    $parameters->set(Option::INDENTATION, 'tab');

    // [default: PHP_EOL]; other options: "\n"
    $parameters->set(Option::LINE_ENDING, "\r\n");
};

Markdown 中的编码标准

ECS-Run

如何在Markdown文件中纠正PHP片段?

vendor/bin/ecs check-markdown README.md
vendor/bin/ecs check-markdown README.md docs/rules.md

# to fix them, add --fix
vendor/bin/ecs check-markdown README.md docs/rules.md --fix

您已经在 ecs.php 配置中定义了路径吗?从CLI删除它们,让ECS使用这些路径

vendor/bin/ecs check-markdown --fix

常见问题解答

如何查看所有加载的检查器?

vendor/bin/ecs show
vendor/bin/ecs show --config ...

如何清除缓存?

vendor/bin/ecs check src --clear-cache

仅在Git Diff更改的文件上运行

可以使用 process 选项 --match-git-diff 将执行限制为更改的文件

vendor/bin/ecs check src --match-git-diff

此选项将过滤配置中包含的文件,创建与 git diff 中列出的文件交集。

您的IDE集成

PHPStorm

ECS可以用作外部工具

PHPStorm Configuration

转到 偏好设置 > 工具 > 外部工具,然后点击 + 添加一个新工具。

  • 名称:ecs(可以是任何值)
  • 描述:easyCodingStandard(可以是任何值)
  • 程序:$ProjectFileDir$/vendor/bin/ecsecs可执行文件的路径;在Windows上路径分隔符必须是\
  • 参数:check $FilePathRelativeToProjectRoot$(要自动修复请添加 --fix
  • 工作目录:$ProjectFileDir$

Cmd/Ctrl + Shift + A(查找操作),搜索 ecs,然后按 Enter。它将为当前文件运行 ecs

要在一个目录上运行 ecs,在项目浏览器中右键点击文件夹,转到外部工具并选择 ecs

您还可以在偏好设置 > 快捷键中创建一个键盘快捷键来运行 ecs

Visual Studio Code

EasyCodingStandard for Visual Studio Code 扩展为在编辑器内运行 EasyCodingStandard 提供了支持。

工具集成

工具 扩展 描述
GrumPHP ECS 任务 为 GrumPHP 提供了一个新的任务,该任务运行 ECS

报告问题

如果您遇到错误或想要请求新功能,请转到Symplify monorepo 问题跟踪器

贡献

此包的源代码包含在 Symplify monorepo 中。我们欢迎在 symplify/symplify 上对此包的贡献。