php-forge/coding-standard
Composer 安装命令:
composer require php-forge/coding-standard
包简介
Centralized ECS and Rector configurations for PHP projects.
README 文档
README
Coding standard
Centralized ECS and Rector configuration for PHP projects
Share one set of rules across multiple repositories via Composer.
System requirements
Installation
composer require php-forge/coding-standard:^0.3 --dev
Or add the dependency manually to composer.json:
{
"require-dev": {
"php-forge/coding-standard": "^0.3"
}
}
Then run composer update.
Configuration files
This package ships shared ECS and Rector configurations under vendor/php-forge/coding-standard/src/:
| File | Purpose |
|---|---|
src/ecs.php |
Shared ECS base rules, no PHP migration set |
src/ecs-81.php |
Base + @PHP81Migration PHP-CS-Fixer set |
src/ecs-82.php |
Base + @PHP82Migration |
src/ecs-83.php |
Base + @PHP83Migration |
src/ecs-84.php |
Base + @PHP84Migration |
src/rector.php |
Shared Rector base rules, no PHP level set |
src/rector-81.php |
Base + SetList::PHP_81 + LevelSetList::UP_TO_PHP_81 |
src/rector-82.php |
Base + SetList::PHP_82 + LevelSetList::UP_TO_PHP_82 |
src/rector-83.php |
Base + SetList::PHP_83 + LevelSetList::UP_TO_PHP_83 |
src/rector-84.php |
Base + SetList::PHP_84 + LevelSetList::UP_TO_PHP_84 |
Pick the version that matches the minimum PHP your project supports; Rector upgrades code up to that level and
PHP-CS-Fixer enforces matching syntax. The plain ecs.php / rector.php apply no PHP-version migrations.
ECS wrapper (ecs.php)
Create ecs.php in your repository root, requiring the version that matches the minimum PHP your project supports
(ecs-83.php for PHP 8.3, etc.):
<?php declare(strict_types=1); /** @var \Symplify\EasyCodingStandard\Configuration\ECSConfigBuilder $ecsConfigBuilder */ $ecsConfigBuilder = require __DIR__ . '/vendor/php-forge/coding-standard/src/ecs-83.php'; return $ecsConfigBuilder ->withPaths( [ __DIR__ . '/src', __DIR__ . '/tests', ], ) ->withSkip( [ // project-specific skips here. ], );
Rector wrapper (rector.php)
Create rector.php in your repository root, importing the version that matches your minimum PHP target:
<?php declare(strict_types=1); use Rector\Config\RectorConfig; return static function (RectorConfig $rectorConfig): void { $rectorConfig->import(__DIR__ . '/vendor/php-forge/coding-standard/src/rector-83.php'); $rectorConfig->paths( [ __DIR__ . '/src', __DIR__ . '/tests', ], ); // project-specific overrides can be added after the import. // $rectorConfig->skip([...]); };
Yii2-specific rules
For framework-specific rules, keep them in a separate config file (or a separate package) and import it after the base configuration. Do not mix Yii2 rules into the generic base:
<?php declare(strict_types=1); use Rector\Config\RectorConfig; return static function (RectorConfig $rectorConfig): void { $rectorConfig->import(__DIR__ . '/vendor/php-forge/coding-standard/src/rector.php'); $rectorConfig->import(__DIR__ . '/rector-yii2.php'); $rectorConfig->paths( [ __DIR__ . '/src', __DIR__ . '/tests', ], ); };
Scaffolded distribution
This package is a yii2-extensions/scaffold provider for the
root ecs.php and rector.php wrapper templates (sourced from src/config/ via scaffold.json). Consumers can
opt in by allowing the plugin and listing this package as an authorised provider:
composer require yii2-extensions/scaffold:^0.1 --dev
{
"config": {
"allow-plugins": {
"yii2-extensions/scaffold": true
}
},
"extra": {
"scaffold": {
"auto": false,
"allowed-packages": [
"php-forge/coding-standard"
]
}
}
}
With auto: false, the plugin does not run on composer install; sync the wrappers manually:
vendor/bin/scaffold reapply --provider=php-forge/coding-standard
Both wrappers ship in mode preserve; written once on first install, never overwritten so consumer edits to paths or
PHP target version survive subsequent runs.
Related packages
For dev environment scaffolding, see php-forge/baseline. The two packages are
independent; adopt either, both, or neither.
Composer scripts
Follow the same convention used across PHP Forge repositories:
{
"scripts": {
"ecs": "./vendor/bin/ecs --fix",
"rector": "./vendor/bin/rector process"
}
}
Package information
Quality code
Our social networks
License
统计信息
- 总下载量: 68.56k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 31
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2026-01-24