安装在具有任何依赖项的任何 PHP 7.2-PHP 8.3项目上
开箱即用,并行运行速度极快
使用 PHP_CodeSniffer 或 PHP-CS-Fixer - 任何你喜欢的
使用准备好的套件和 PHP CS Fixer 套件来节省时间
作曲家需要 symplify/easy-coding-standard --dev
供应商/bin/ecs
第一次运行时,ECS 会创建ecs.php
配置文件,其中包含要启动的目录和第一条规则。
然后您可以再次运行以查看建议的差异:
供应商/bin/ecs
要实际修复您的代码,请添加--fix
:
供应商/bin/ecs --修复
就是这样!
大多数时候,您会对默认配置感到满意。最相关的部分是配置路径、检查器和集合:
使用 PhpCsFixerFixerArrayNotationArraySyntaxFixer;使用 PhpCsFixerFixerListNotationListSyntaxFixer;使用 SymplifyEasyCodingStandardConfigECSConfig;返回 ECSConfig::configure() ->withPaths([__DIR__ . '/src', __DIR__ . '/tests']) ->withConfiguredRule( ArraySyntaxFixer::类, ['语法' => '长'] ) ->withRules([ ListSyntaxFixer::类, ]) ->withPreparedSets(psr12: true);
您想检查根目录中的所有*.php
文件( ecs.php
、 rector.php
等)吗?不要一一列出它们,而是使用->withRootFiles()
方法:
使用 SymplifyEasyCodingStandardConfigECSConfig;返回 ECSConfig::configure() ->withPaths([__DIR__ . '/src', __DIR__ . '/tests']) ->withRootFiles();
您想包含 php-cs-fixer 的 44 组中的一组吗?
你可以:
使用 SymplifyEasyCodingStandardConfigECSConfig;返回 ECSConfig::configure() ->withPaths([__DIR__ . '/src', __DIR__ . '/tests']) ->withPhpCsFixerSets(perCS20:true,doctrineAnnotation:true);
喜欢规则集,但想跳过单个规则或某些文件?
使用 SymplifyEasyCodingStandardConfigECSConfig;返回 ECSConfig::configure() ->withSkip([// 跳过单个规则ArraySyntaxFixer::class,// 跳过特定路径中的单个规则ArraySyntaxFixer::class => [__DIR__ . '/src/ValueObject/', ],// 通过绝对或 * mask__DIR__ 跳过目录。 '/src/Migrations',// 通过 mask__DIR__ 跳过目录。 '/src/*/旧版', ]);
您可能不会使用这些,但它们可以让您更好地控制内部流程:
use SymplifyEasyCodingStandardConfigECSConfig;use SymplifyEasyCodingStandardValueObjectOption;return ECSConfig::configure()// 要扫描的文件扩展名->withFileExtensions(['php'])// 配置缓存路径和命名空间 - 有用,例如 Gitlab CI 缓存,其中 getcwd() 生成的结果始终不同路径->withCache( 目录: sys_get_temp_dir() 。 '/_changed_files_ detector_tests', namespace: getcwd() // 标准化为目录分隔符)// 使用特定缩进规则打印内容 ->withSpacing(indentation: Option::INDENTATION_SPACES, lineEnding: PHP_EOL)// 修改并行运行 ->withParallel(timeoutSeconds: 120, maxNumberOfProcess: 32、作业大小:20);
提到的值是默认值。
您是否在各种项目中使用 ECS?您想在每个项目中始终以相同的方式运行它们吗?让我们使用 Composer 脚本
此命令向您的composer.json
添加2个方便的脚本:
供应商/bin/ecs 脚本
始终以相同的方式运行它们 - 检查代码:
作曲家检查-cs
要应用修复,请运行:
作曲家修复cs
您可能希望使用 ECS 为第三方工具生成报告。
我们目前提供的格式化程序用于:
console
:以 PHP CS Fixer 方式进行的以人为本的打印。
json
:用于任意工具的自定义 JSON blob。
junit
:在不同 CI 环境中使用的 JUnit 格式。
checkstyle
:对于 Github 操作报告很有用。
gitlab
:用于 Gitlab 代码质量报告或 Code Climate 工具。
有关它们的行为方式的信息,请参阅它们各自的实现。
供应商/bin/ecs --清除缓存
供应商/bin/ecs 列表检查器
你寻找json格式吗?
供应商/bin/ecs list-checkers --output-format json
您是否使用其他工具并想要迁移?这非常简单 - 这是“如何做”:
对于 PHP_CodeSniffer
和 PHP CS 修复程序。