tm/tooly-composer-script

用于管理 Phar 文件的简单 composer 脚本。

1.4.1 2019-06-24 20:52 UTC

README

Minimum PHP Version Latest Stable Version Total Downloads Build Status Build status SensioLabsInsight License Gitter

使用 tooly composer-script,您可以在项目的 composer.json 中不直接添加它们到 VCS 中,来管理所需的 PHAR 文件版本,

  • 以节省 vcs 存储库的磁盘空间
  • 确保项目中所有开发者都能获取到所需的工具链
  • 为 CI/CD 系统做准备
  • (可选) 自动检查每个工具的 GPG 签名验证

每个 PHAR 文件都将保存在 composer 二进制目录 中。

示例

一个实际示例可以在 这里 找到。

要求

  • PHP >= 5.6
  • Composer

安装

要使用此脚本,请执行以下命令

composer require --dev tm/tooly-composer-script

然后,在 composer.json 中的 "scripts" 下添加脚本,并指定要触发的事件名称。例如

...
"scripts": {
    "post-install-cmd": "Tooly\\ScriptHandler::installPharTools",
    "post-update-cmd": "Tooly\\ScriptHandler::installPharTools"
  },
...

更多有关 composer 事件的信息,请 查看此处

示例用法

composer.json 架构中有一个部分 "extra",该部分用于脚本。其描述 在此

在此部分中,您可以在 "tools" 键下添加所需的 PHAR 工具。

...
"extra": {
    ...
    "tools": {
      "phpunit": {
        "url": "https://phar.phpunit.de/phpunit-5.5.0.phar",
        "sign-url": "https://phar.phpunit.de/phpunit-5.5.0.phar.asc"
      },
      "phpcpd": {
        "url": "https://phar.phpunit.de/phpcpd-2.0.4.phar",
        "only-dev": true,
        "rename": true
      },
      "security-checker": {
        "url": "http://get.sensiolabs.org/security-checker.phar",
        "force-replace": true
      },
    }
    ...
  }
...

参数

url (必需)

添加工具名称作为键后,您只需添加一个额外的参数,即 "url"。URL 可以是特定版本(例如 x.y.z)的链接,或指向此 Phar 的最新版本的链接。

rename (可选,默认 false)

将下载的工具重命名为用作键的名称。

sign-url (可选,默认 none)

如果设置了此参数,tooly 会通过比较 sign-url 中的签名来检查 url 中的 PHAR 文件是否具有有效的签名。

此选项很有用,如果您想确保工具来自预期的作者。

注意:对于检查,您还需要一个额外的 要求 和一个 GPG 二进制文件在您的 $PATH 变量中。

您可以使用此命令添加要求:composer require tm/gpg-verifier

如果没有工具作者的公钥在您的 GPG 密钥链中,此检查通常会失败。

fallback-url (可选,默认 none)

此选项很有用,如果您想为日常构建过程添加额外的稳定性。

如果所需的 URL 不可访问且设置了 fallback-url,则 tooly 将使用回退 URL 下载 Phar 文件。回退 URL 可以是特定版本(例如 x.y.z)的链接,或指向此 Phar 的最新版本的链接。

force-replace (可选,默认 false)

每次使用 composer 更新或安装时,都会检查 Phar 工具。如果远程和本地 Phar 的校验和不同,则会询问您是否要覆盖现有的 Phar。

除非您设置了此参数。

此选项很有用,如果您有一个指向工具最新版本的链接,并且总是希望进行替换。或者您在非交互模式下运行 composer(例如在 CI 系统中)并希望进行替换。

但即使某些require-dev库将工具作为自己的需求,这也很有用。

only-dev(可选,默认为true)

此参数表示此phar只在开发模式下需要。因此,命令 composer [install|update] --no-dev 会忽略此phar工具。

注意:因此tooly必须是no-dev需求

PhpStorm或其他IDE用户注意事项

要进一步实现自动提示,您应该在项目中设置“include_path”选项。PhpStorm设置

贡献

有关如何贡献的信息,请参阅CONTRIBUTING.md