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://composer.php.ac.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\BinNormalizerErgebnis\Composer\Json\Normalizer\ConfigHashNormalizerErgebnis\Composer\Json\Normalizer\PackageHashNormalizerErgebnis\Composer\Json\Normalizer\VersionConstraintNormalizer
BinNormalizer
如果 composer.json 在 bin 部分包含脚本数组,则 BinNormalizer 将按值按升序排序 bin 部分的元素。
💡 更多关于 bin 部分的详细信息,请参阅 https://composer.php.ac.cn/doc/04-schema.md#bin。
ConfigHashNormalizer
如果 composer.json 在
configextrascripts-descriptions
部分包含任何配置,则 ConfigHashNormalizer 将按键按升序排序这些部分的内容。
💡 更多关于 config 部分的详细信息,请参阅 https://composer.php.ac.cn/doc/06-config.md。
PackageHashNormalizer
如果 composer.json 在
conflictprovidereplacerequirerequire-devsuggest
部分,则 PackageHashNormalizer 将排序这些部分的内容。
💡 这将 --sort-packages 或 sort-packages 配置标志的行为转移到其他部分。更多关于 --sort-packages 标志和配置的详细信息,请参阅 https://composer.php.ac.cn/doc/06-config.md#sort-packages 和 https://composer.php.ac.cn/doc/03-cli.md#require。
VersionConstraintNormalizer
如果 composer.json 在
conflictprovidereplacerequirerequire-dev
部分包含版本约束,则 VersionConstraintNormalizer 将确保
- 所有约束都被裁剪
- 和约束之间由单个空格(
)或逗号(,)分隔 - 或约束由双竖线(
||)分隔,双竖线前后各有一个空格 - 范围约束由单个空格(
)分隔
💡 了解有关版本约束的更多信息,请访问 https://composer.php.ac.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。