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-fixer
or as a dependency (e.g. to include into CI process):
composer require --dev jnbn/composer-json-fixer
Run and fix:
vendor/bin/composer-json-fixer
See diff of potential fixes:
vendor/bin/composer-json-fixer --dry-run
Upgrade dependencies with composer require
:
vendor/bin/composer-json-fixer --upgrade
- composer keys lowercase - changes names of properties to lowercase
- autoload - fixes paths and sorts
autoload
andautoload-dev
- config - sorts
config
by key - keywords - sorts
keywords
by value - license - adds
license
if it is missing - minimum stability - removes
minimum-stability
if it has default value ("stable") - name - makes package name lowercase
- repositories - sorts
repositories
- require - cleans up versions for
require
andrequire-dev
- version - removes
version
if 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.json
file does not require fixing,1
-composer.json
file 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.md
make sure all checks pass:
composer check
and submit a pull request.