symplify / easy-coding-standard-prefixed
v9.3.1
2021-05-04 18:48 UTC
- dev-main
- v9.3.1
- v9.3.0
- v9.2.23
- v9.2.22
- v9.2.21
- v9.2.19
- v9.2.18
- v9.2.17
- v9.2.15
- v9.2.14
- v9.2.13
- v9.2.12
- v9.2.11
- v9.2.10
- v9.2.9
- v9.2.8
- v9.2.7
- v9.2.6
- v9.2.5
- v9.2.4
- v9.2.3
- v9.2.2
- 9.2.1
- 9.2.0
- 9.1.9
- 9.1.8
- 9.1.7
- 9.1.6
- 9.1.5
- 9.1.4
- 9.1.3
- 9.0.19
- 9.0.18
- 9.0.17
- 9.0.16
- 9.0.15
- 9.0.14
- 9.0.13
- 9.0.12
- 9.0.11
- 9.0.10
- 9.0.9
- 9.0.8
- 9.0.7
- 9.0.6
- 9.0.5
- 9.0.4
- 9.0.3
- 9.0.2
- 9.0.1
- 9.0.0
- 9.0.0-rc1
- 9.0.0-BETA9
- 9.0.0-BETA8
- 9.0.0-BETA7
- 9.0.0-BETA6
- 9.0.0-BETA5
- 9.0.0-BETA4
- 9.0.0-BETA3
- 9.0.0-BETA2
- 9.0.0-BETA1
- 8.3.48
- 8.3.47
- 8.3.46
- 8.3.45
- 8.3.44
- 8.3.43
- 8.3.42
- 8.3.41
- 8.3.40
- 8.3.39
- 8.3.38
- 8.3.37
- 8.3.36
- 8.3.35
- 8.3.34
- 8.3.33
- 8.3.32
- 8.3.31
- 8.3.30
- 8.3.29
- 8.3.28
- 8.3.27
- 8.3.26
- 8.3.25
- 8.3.24
- 8.3.23
- 8.3.22
- 8.3.21
- 8.3.20
- 8.3.19
- 8.3.18
- 8.3.17
- 8.3.16
- 8.3.15
- 8.3.14
- 8.3.13
- 8.3.12
- 8.3.11
- 8.3.10
- 8.3.9
- 8.3.8
- 8.3.7
- 8.3.6
- 8.3.5
- 8.3.4
- 8.3.3
- 8.3.2
- 8.3.1
- 8.3.0
- 8.2.27
- 8.2.26
- 8.2.25
- 8.2.24
- 8.2.23
- 8.2.22
- 8.2.21
- 8.2.20
- 8.2.19
- 8.2.18
- 8.2.17
- v8.2.16
- v8.2.15
- v8.2.14
- v8.2.13
- v8.2.12
- v8.2.11
- v8.2.10
- v8.2.9
- v8.2.8
- v8.2.7
- v8.2.6
- v8.2.5
- v8.2.4
- v8.2.3
- v8.2.2
- v8.2.1
- v8.2.0
- v8.1.21
- v8.1.20
- v8.1.19
- v8.1.18
- v8.1.17
- v8.1.16
- v8.1.15
- v8.1.14
- v8.1.13
- v8.1.12
- v8.1.11
- v8.1.10
- v8.1.9
- v8.1.8
- v8.1.7
- v8.1.6
- v8.1.5
- v8.1.4
- v8.1.3
- v8.1.2
- v8.1.1
- v8.1.0
- v8.0.1
- v8.0.0
- v8.0.0-beta4
- v8.0.0-beta3
- v8.0.0-beta2
- v8.0.0-beta1
- v7.3.18
- v7.3.17
- v7.3.16
- v7.3.15
- v7.3.14
- v7.3.13
- v7.3.12
- v7.3.11
- v7.3.10
- v7.3.9
- v7.3.8
- v7.3.7
- v7.3.6
- v7.3.5
- v7.3.4
- v7.3.3
- v7.3.2
- v7.3.1
- v7.3.0
- v7.2.20
- v7.2.19
- v7.2.18
- v7.2.17
- v7.2.16
- v7.2.15
- v7.2.14
- v7.2.13
- v7.2.12
- v7.2.11
- v7.2.10
- v7.2.9
- v7.2.8
- v7.2.7
- v7.2.6
- v7.2.5
- v7.2.4
- v7.2.3
- v7.2.2
This package is auto-updated.
Last update: 2021-05-07 09:45:30 UTC
README
特性
- 使用 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 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 中的编码标准
如何在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可以用作外部工具
转到 偏好设置
> 工具
> 外部工具
,然后点击 +
添加一个新工具。
- 名称:
ecs
(可以是任何值) - 描述:
easyCodingStandard
(可以是任何值) - 程序:
$ProjectFileDir$/vendor/bin/ecs
(ecs
可执行文件的路径;在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 上对此包的贡献。