yoanm/composer-config-manager

此包已被废弃且不再维护。未建议替代包。

用于管理 composer 配置文件的命令行工具

2.1.1 2017-05-04 10:49 UTC

This package is auto-updated.

Last update: 2022-02-21 19:24:41 UTC


README

Scrutinizer Build Status Scrutinizer Code Quality Code Coverage

Travis Build Status PHP Versions

Latest Stable Version

管理 composer 配置文件的命令

安装

composer global require yoanm/composer-config-manager

在您的 .bashrc 文件中添加以下内容

export PATH=~/.composer/vendor/bin:$PATH 

如何使用

只需输入以下内容

composercm create "vendor/package-name" path/to/repository/directory [OPTIONS]
composercm update path/to/repository/directory [OPTIONS]

如果您从仓库目录启动命令,您可以直接使用

composercm create "vendor/package-name" [OPTIONS]
composercm update [OPTIONS]
  • 输入 composercm list 列出所有可用命令
  • 输入 composercm help COMMAND_NAMEcomposercm COMMAND_NAME -h 以显示特定命令的帮助信息

以下为有关命令行选项的更多信息

  • composercm update 命令将应用当前 composer.json 文件中的给定值

创建

  • --template 选项,给定的值将应用于模板
  • 值将按照默认顺序附加

更新

  • --template 选项,以下是如何管理模板的说明
  • 键的顺序保持与旧配置文件相同。新键将按默认顺序附加

模板

  • 可以提供多个模板。更新工作流程如下
    • 1 - 模板之间的比较

      • 如果提供了多个模板,第一个模板将使用第二个模板中的值进行更新
      • 结果配置将使用第三个模板进行更新

      ...

      • 结果配置将使用 X 模板进行更新
    • 2 - 结果配置与现有配置进行比较

      • 对于更新命令,如果在至少一个模板已给出的情况下
    • 3 - 结果配置与命令行值进行比较

      • 如果只使用模板,则可以跳过

键的顺序

  • 默认键顺序与 composer 文档网站中定义的顺序相同
  • 可以使用 --template 选项定义最终配置的键顺序。例如,定义一个名为 key_order.json 的模板文件,其内容如下:
{
  "name": null,
  "type": null,
  "license": null,
  "version": null,
  "description": null,
  "keywords": [],
  "authors": {},
  "provide": {},
  "suggest": {},
  "support": {},
  "autoload": {},
  "autoload-dev": {},
  "require": {},
  "require-dev": {},
  "scripts": {}
}

  然后使用以下命令

composercm [create|update] [ARGS] [OPTIONS] --template key_order.json

结果文件将具有与 key_order.json 文件中相同的键顺序。所有键都可以添加到 key_order.json 中,如果没有为键提供值,则键不会出现在最终文件中。

  如果您还想提供一个带有默认值的模板,请使用以下内容

composercm [create|update] [ARGS] [OPTIONS] --template key_order.json --template default_values.json [--template another.json]

管理的属性

以下属性可以使用命令行选项定义

  • 包名
  • 包类型
  • 许可证
  • 版本
  • 描述
  • 关键词 允许多个
  • 作者 允许多个
  • 提供的包 许多允许
  • 建议的包 许多允许
  • 支持 许多允许
  • PSR-0 / PSR-4 自动加载 许多允许
  • PSR-0 / PSR-4 自动加载 dev 许多允许
  • 必需的包 许多允许
  • 必需的开发包 许多允许
  • 脚本

所有其他属性都可以在模板中定义,并将以默认方式管理(可能对于复杂嵌套值会产生意外的合并)

完整的 composer 配置

{
  "name": "vendor/package-name",
  "type": "library",
  "license": "LICENSE_TYPE",
  "version": "X.Y.Z",
  "description": "package description",
  "keywords": ["KEYWORD1", "KEYWORD2"],
  "authors": [
    {
      "name": "name1",
      "email": "email1",
      "role": "role1"
    },
    {
      "name": "name2",
      "email": "email2",
      "role": "role2"
    }
  ],
  "provide": {
    "package1": "~x.y",
    "package2": "x.y.z",
  },
  "suggest": {
    "package1": "Description 1",
    "package2": "Description 2",
  },
  "support": {
    "type1": "url1"
  },
  "autoload": {
    "psr-0": {
      "\\RootNamespace\\SubNamespace": "path"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "\\RootNamespace\\SubNamespace\\": "path"
    }
  },
  "require": {
    "requirement1": ">=x.y"
  },
  "require-dev": {
    "requirement1": ">=x.y"
  },
  "scripts": {
    "script-1": [
      "command_1",
      "command_2"
    ],
    "script-2": [
      "command_1",
      "command_2"
    ],
  }
}

贡献

查看 贡献说明