localheinz/ 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 08:18:16 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#3549
和 composer/composer#3872
向 composer/composer
贡献了此代码。