ergebnis / composer-json-normalizer
Requires
- php: ^7.1
- ext-json: *
- ergebnis/json-normalizer: ~0.10.1
- justinrainbow/json-schema: ^4.0.0 || ^5.0.0
Requires (Dev)
- ergebnis/php-cs-fixer-config: ~1.1.2
- ergebnis/phpstan-rules: ~0.14.2
- ergebnis/test-util: ~0.9.1
- infection/infection: ~0.13.6
- jangregor/phpstan-prophecy: ~0.5.0
- phpstan/extension-installer: ^1.0.3
- phpstan/phpstan: ~0.11.19
- phpstan/phpstan-deprecation-rules: ~0.11.2
- phpstan/phpstan-strict-rules: ~0.11.1
- phpunit/phpunit: ^7.5.18
This package is auto-updated.
Last update: 2020-01-09 13:59:08 UTC
README
提供用于规范化 composer.json
的规范化工具。
安装
运行
$ composer require ergebnis/composer-json-normalizer
使用
创建一个 Ergebnis\Composer\Json\Normalizer\ComposerJsonNormalizer
的实例,并使用它来规范化 composer.json
的内容
<?php use Ergebnis\Composer\Json\Normalizer\ComposerJsonNormalizer; use Ergebnis\Json\Normalizer\Json; $normalizer = new ComposerJsonNormalizer('https://getcomposer.org.cn/schema.json'); $json = Json::fromEncoded(file_get_contents(__DIR__ . '/composer.json')); $normalized = $normalizer->normalize($json); echo $normalized->encoded();
💡 查找 composer 插件?请访问 localheinz/composer-normalize
。
规范化器
ComposerJsonNormalizer
组合了由 localheinz/json-normalizer
提供的规范化器
以及本软件包提供的以下规范化器
Ergebnis\Composer\Json\Normalizer\BinNormalizer
Ergebnis\Composer\Json\Normalizer\ConfigHashNormalizer
Ergebnis\Composer\Json\Normalizer\PackageHashNormalizer
Ergebnis\Composer\Json\Normalizer\VersionConstraintNormalizer
BinNormalizer
如果 composer.json
在 bin
部分包含脚本数组,则 BinNormalizer
将按值按升序排序 bin
部分的元素。
💡 更多关于 bin
部分的详细信息,请参阅 https://getcomposer.org.cn/doc/04-schema.md#bin。
ConfigHashNormalizer
如果 composer.json
在
config
extra
scripts-descriptions
部分包含任何配置,则 ConfigHashNormalizer
将按键按升序排序这些部分的内容。
💡 更多关于 config
部分的详细信息,请参阅 https://getcomposer.org.cn/doc/06-config.md。
PackageHashNormalizer
如果 composer.json
在
conflict
provide
replace
require
require-dev
suggest
部分,则 PackageHashNormalizer
将排序这些部分的内容。
💡 这将 --sort-packages
或 sort-packages
配置标志的行为转移到其他部分。更多关于 --sort-packages
标志和配置的详细信息,请参阅 https://getcomposer.org.cn/doc/06-config.md#sort-packages 和 https://getcomposer.org.cn/doc/03-cli.md#require。
VersionConstraintNormalizer
如果 composer.json
在
conflict
provide
replace
require
require-dev
部分包含版本约束,则 VersionConstraintNormalizer
将确保
- 所有约束都被裁剪
- 和约束之间由单个空格(
,
)分隔 - 或约束由双竖线(
||
)分隔,双竖线前后各有一个空格 - 范围约束由单个空格(
💡 了解有关版本约束的更多信息,请访问 https://getcomposer.org.cn/doc/articles/versions.md。
变更日志
请查看 CHANGELOG.md
。
贡献
请查看 CONTRIBUTING.md
。
行为准则
请查看 CODE_OF_CONDUCT.md
。
许可协议
本软件包使用MIT许可协议授权。
致谢
PackageHashNormalizer
中的排序算法采用了从 Composer\Json\JsonManipulator::sortPackages()
(由 Nils Adermann 和 Jordi Boggiano 以MIT许可证授权)中,我最初将其贡献给 composer/composer
,提交号为 composer/composer#3549
和 composer/composer#3872
。