php-forge / baseline
Centralized PHP development baseline: code style, linters, CI workflows, and dev environment tooling.
Requires
- php: >=8.3
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Baseline
Centralized PHP development baseline
Code style, linters, CI workflows, and dev environment tooling shared across repositories via Composer.
System requirements
Installation
composer require php-forge/baseline:^0.2 --dev
Or add the dependency manually to composer.json:
{
"require-dev": {
"php-forge/baseline": "^0.1"
}
}
Then run composer update.
Scaffolded distribution
This package is a yii2-extensions/scaffold provider for core PHP
dev environment metadata (editor, gitignore, StyleCI, quality linter configs). Templates live under
metadata/ and are mapped to consumer roots via the {from, to} form in scaffold.json.
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/baseline"]
}
}
}
With auto: false, the plugin does not run on composer install; sync templates manually:
vendor/bin/scaffold reapply --provider=php-forge/baseline vendor/bin/scaffold diff <file> vendor/bin/scaffold status
Files distributed
.
├── .editorconfig # append: Editor settings; consumer-specific lines preserved
├── .gitattributes # replace: Text/binary handling, archive excludes
├── .gitignore # append: Common ignore patterns; project-specific lines preserved
├── .styleci.yml # replace: StyleCI config (PSR-12 + risky)
├── composer-require-checker.json # preserve: Composer require-checker whitelist (project-specific)
└── .github
└── linters
├── .codespellrc # replace: codespell config
├── .editorconfig-checker.json # replace: editorconfig-checker config
├── .gitleaks.toml # replace: gitleaks config
└── .markdown-lint.yml # replace: markdownlint config
Mode semantics:
replace: lock-step with this package. Local edits trigger a warning and the file is skipped on update.append: provider content is merged into the existing file; consumer additions never blown away.preserve: file is written once on first install and never overwritten.
Related packages
For ECS and Rector configurations and their root wrapper templates, see
php-forge/coding-standard. The two packages are independent — adopt
either, both, or neither.