brandembassy / coding-standard
Brand Embassy 编码规范
Requires
- php: >=8.1
- composer-runtime-api: ^2.2
- dealerdirect/phpcodesniffer-composer-installer: ^0.5 || ^0.7 || ^1.0
- phpstan/phpstan: ^1.11.6
- phpstan/phpstan-mockery: ^1.1
- phpstan/phpstan-nette: ^1.3.0
- phpstan/phpstan-phpunit: ^1.4.0
- phpstan/phpstan-strict-rules: ^1.6.0
- rector/rector: ^1.2.0
- slevomat/coding-standard: ^8.15.0
- squizlabs/php_codesniffer: ^3.9.2
- symplify/easy-coding-standard: ^12.1.14
- tomasvotruba/cognitive-complexity: ^0.2.3
Requires (Dev)
- mockery/mockery: ^1.5
- phpunit/phpunit: ^10.5
- roave/security-advisories: dev-latest
Conflicts
- dev-master
- 12.1.0
- 12.0.0
- 11.6
- 11.5
- 11.4.1
- 11.4.0
- 11.3.0
- 11.2.x-dev
- 11.2.2
- 11.2.1
- 11.2.0
- 11.1.0
- 11.0.0
- 10.1
- 10.0.0
- 10.0.0-beta
- 9.x-dev
- 9.0.0
- 8.10.1
- 8.10
- 8.9
- 8.8
- 8.7
- 8.6
- 8.5
- 8.4.1
- 8.4
- 8.3
- 8.2
- 8.1.5
- 8.1.4
- 8.1.3
- 8.1.2
- 8.1.1
- 8.1
- 8.0
- 7.3
- 7.2
- 7.1.1
- 7.1
- 7.0.0
- 6.x-dev
- 6.3.2
- 6.3.1
- 6.3
- 6.2
- 6.1
- 6.0.2
- 6.0.1
- 6.0.0
- 5.3.2
- 5.3.1
- 5.3
- 5.2
- 5.1
- 5.0
- 4.0
- 3.2
- 3.1.1
- 3.1
- 3.0
- 2.1.1
- 2.1.0
- 2.0.1
- 2.0
- 1.2.0
- 1.1.0
- 1.0.0
- dev-add-else-as-forbidden-statement
- dev-DE-63904-add-rector-support
- dev-php-version-requirement-fix
- dev-update-slevomat-and-phpstan
- dev-de-31287
- dev-entity-not-final-rule
- dev-long-exception-variable-sniff
- dev-php-7-4-sniffs
- dev-all-php-keywords-lowercase
- dev-upgrate_phpstan
This package is auto-updated.
Last update: 2024-09-11 12:42:09 UTC
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
- 包含 phpstan-strict-rules 扩展
- 包含 phpstan-nette 扩展
- 默认包含最大级别配置
要使用默认配置,请将 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