ergebnis/composer-json-normalizer

此软件包已被弃用,不再维护。作者建议使用 ergebnis/json-normalizer 软件包。

提供用于规范化 composer.json 的规范化工具。

2.0.1 2019-12-19 17:12 UTC

This package is auto-updated.

Last update: 2020-01-09 13:59:08 UTC


README

Continuous Deployment Continuous Integration Code Coverage Type Coverage Latest Stable Version Total Downloads

提供用于规范化 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 提供的规范化器

以及本软件包提供的以下规范化器

BinNormalizer

如果 composer.jsonbin 部分包含脚本数组,则 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-packagessort-packages 配置标志的行为转移到其他部分。更多关于 --sort-packages 标志和配置的详细信息,请参阅 https://getcomposer.org.cn/doc/06-config.md#sort-packageshttps://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 AdermannJordi Boggiano 以MIT许可证授权)中,我最初将其贡献给 composer/composer,提交号为 composer/composer#3549composer/composer#3872