hgraca/composer-system-requirements-plugin

用于管理系统依赖的composer插件。

v1.0.0 2023-04-03 20:38 UTC

This package is auto-updated.

Last update: 2024-08-30 01:38:29 UTC


README

build status coverage report

这是一个composer插件,它会在操作系统级别本身检查依赖项,例如检查是否安装了Bash版本高于5.0。

如何使用

安装并允许插件

composer require "hgraca/composer-system-requirements-plugin"
{
  "name": "hgraca/some-project",
  "type": "project",
  "require": {
    "hgraca/composer-system-requirements-plugin": "^1.0"
  },
  "config": {
    "allow-plugins": {
      "hgraca/composer-system-requirements-plugin": true
    }
  }
}

配置需求

在撰写本文时,只有一个内置需求,即 bash,该需求由位于 src/Package/RequirementValidator/BashRequirementValidator.php 的类验证。

如果/当添加更多需求验证器时,您可以在同一位置找到它们。

系统需求可以配置为

{
  "name": "hgraca/dummy-shell-project-1",
  "type": "project",
  "extra": {
    "hgraca/composer-system-requirements-plugin": {
      "require": {
        "bash": "^5.1"
      }
    }
  }
}

创建自己的验证器

您的验证器需要实现接口 \Hgraca\ComposerSystemRequirementsPlugin\Package\RequirementValidator\RequirementValidatorInterface

例如,请参阅 src/Package/RequirementValidator/BashRequirementValidator.php

添加自定义需求验证器

{
  "name": "hgraca/dummy-shell-project-1",
  "type": "project",
  "extra": {
    "hgraca/composer-system-requirements-plugin": {
      "require": {
        "bash": "^5.1"
      },
      "validators": [
        "MyVendor\\MyProject\\MyValidatorClass"
      ]
    }
  }
}

一个工作示例

对于工作示例,请检查 tests/PluginTestPlayground

您可以使用以下任何命令

export COMPOSER="composer_with_successful_root_requirement-run_on_shell.json" && composer -d tests/PluginTestPlayground/TestProject install
export COMPOSER="composer_with_failed_root_requirement-run_on_shell.json" && composer -d tests/PluginTestPlayground/TestProject install

如何运行

使用本地PHP (8.2)

  • 使用 composer install 安装依赖项;
  • 可以使用 composer test 运行测试;
  • 要列出所有自定义脚本,请运行 composer run-script --list

使用Docker

  • ./build 中更改PHP和xdebug配置;
  • 使用 docker compose -f ./build/docker-compose.yaml run app composer install 安装依赖项;
  • 可以使用 composer docker-test 运行测试;
  • 要列出所有自定义脚本,请运行 docker compose -f ./build/docker-compose.yaml run app composer run-script --list

其他命令

  • composer git-bundle:创建一个git bundle
  • git clone -b main composer-system-requirements-plugin.gitbundle composer-system-requirements-plugin:从git bundle重新创建存储库

作者

Herberto Graca