A tool for fixing and cleaning up composer.json file
according to its schema and best practices.
composer.json fixer can be installed globally:
composer global require jnbn/composer-json-fixeror as a dependency (e.g. to include into CI process):
composer require --dev jnbn/composer-json-fixerRun and fix:
vendor/bin/composer-json-fixerSee diff of potential fixes:
vendor/bin/composer-json-fixer --dry-runUpgrade dependencies with composer require:
vendor/bin/composer-json-fixer --upgrade- composer keys lowercase - changes names of properties to lowercase
- autoload - fixes paths and sorts
autoloadandautoload-dev - config - sorts
configby key - keywords - sorts
keywordsby value - license - adds
licenseif it is missing - minimum stability - removes
minimum-stabilityif it has default value ("stable") - name - makes package name lowercase
- repositories - sorts
repositories - require - cleans up versions for
requireandrequire-dev - version - removes
versionif it is present - composer keys sorting - sorts properties according to the documentation
Before running composer-json-fixer:
{
"name": "JohnDoe/FooBar",
"version": "v1.0.0",
"type": "library",
"description": "A library to do something cool",
"keywords": [
"cool",
"awesome stuff"
],
"require-dev": {
"phpunit/phpunit": "^5.7 | ^6.5"
},
"require": {
"symfony/finder": "^2.7|^3.4|^4",
"symfony/yaml": ">= 2.7"
},
"minimum-stability": "stable",
"autoload": {
"psr-4": {
"FooBar": "src"
}
}
}
After:
{
"name": "johndoe/foobar",
"description": "A library to do something cool",
"type": "library",
"keywords": [
"awesome stuff",
"cool"
],
"license": "proprietary",
"require": {
"symfony/finder": "^2.7 || ^3.4 || ^4",
"symfony/yaml": ">=2.7"
},
"require-dev": {
"phpunit/phpunit": "^5.7 || ^6.5"
},
"autoload": {
"psr-4": {
"FooBar\\": "src/"
}
}
}
0-composer.jsonfile does not require fixing,1-composer.jsonfile can be, or was fixed,2- exception was thrown.
Request a feature or report a bug by creating issue.
Alternatively, fork the repo, develop your changes, regenerate README.md:
src/Readme/run > README.mdmake sure all checks pass:
composer checkand submit a pull request.