brandembassy/coding-standard

Brand Embassy 编码规范

安装次数: 209,654

依赖: 16

建议者: 0

安全: 0

星星: 2

关注者: 11

分支: 0

开放问题: 6

类型:phpcodesniffer-standard


README

  • PHP_CodeSniffer 和 cs-fixer 规则,用于检查仓库是否遵循 Brand Embassy 项目的统一编码标准。
  • PHPStan 默认配置文件。
  • PhpStorm 代码风格和检查(使用 Php Inspections (EA Extended) 插件)配置文件。

标准

要了解实施的全套参考,请查看 default-ecs.php,其中每个偏离默认设置的嗅探器/修复器的描述简短。

@TODO 重要嗅探器的列表

可跳过的嗅探器/修复器

在一般或特定文件中跳过嗅探器/修复器的配置应在项目的 ecs.php 中进行。此文件应利用 default-ecs.php 作为默认配置,但预计您将进行调整以适应项目需求。

安装

您可以将 Brand Embassy 编码规范作为 composer 依赖项安装到您的项目中

$ composer require --dev brandembassy/coding-standard

ECS

您可以使用此命令运行 ecs(不执行自动修复)

$ ./vendor/bin/ecs check --ansi

或使用自动修复

$ ./vendor/bin/ecs check --ansi --fix

您可以使用 --clear-cache 选项在应用修复器和嗅探器之前清除缓存

$ ./vendor/bin/ecs check --ansi --fix --clear-cache

PHPStan

要使用默认配置,请将 default-phpstan.neon 包含在项目 PHPStan 配置中

includes:
    - vendor/brandembassy/coding-standard/integration-phpstan.neon

Rector

要使用默认配置,请将 default-rector.php 包含在项目的 Rector 配置中

$rectorConfigBuilder = RectorConfig::configure();
$defaultRectorConfigurationSetup = require __DIR__ . '/vendor/brandembassy/coding-standard/default-rector.php';

$defaultSkipList = $defaultRectorConfigurationSetup($rectorConfigBuilder);

// You can skip unwanted rules here
$skipList = array_merge(
    $defaultSkipList,
    [
        '*/__fixtures__/*',
        NewlineAfterStatementRector::class, // might conflict with ECS
    ],
);

// You can override/append to the default configuration here
$rectorConfigBuilder
    ->withPHPStanConfigs([__DIR__ . '/phpstan.neon'])
    ->withCache('./var/temp/rector', FileCacheStorage::class)
    ->withSkip($skipList);

return $rectorConfigBuilder;

⚠️ Rector 规则的测试需要在单独的进程中运行,因为 Rector 和 PHPStan 使用不同的 php-parser 版本。请参阅此处说明 staabm/zf-select-strip#8。另一种方法是在单独的测试套件中运行它们,但这样我们会遇到代码覆盖率的问题。

PhpStorm

此项目包含 PhpStorm 的检查和代码风格配置。

  • BrandEmbassyCodeStyle.xml
  • BrandEmbassyInspections.xml

导入这些配置可以减少提交前 phpcs 检查中的错误数量。

版本控制

此库遵循语义版本控制,并且仅在主要版本中执行代码规则集的添加。

测试

@TODO: 灵感 - https://github.com/doctrine/coding-standard/tree/master/tests

如果您正在为 Brand Embassy 编码规范做出贡献并想测试您的贡献,您只需执行 PHPCS 并确保它与预期的报告匹配即可。

$ ./vendor/bin/phpcs tests/input --report=summary --report-file=phpcs.log; diff tests/expected_report.txt phpcs.log