roadrunner-php/version-checker

用于检查 RoadRunner 版本的包

v1.0.1 2023-12-19 08:51 UTC

This package is not auto-updated.

Last update: 2024-09-10 12:39:11 UTC


README

PHP Version Require Latest Stable Version phpunit psalm Codecov Total Downloads

需求

确保您的服务器已配置以下 PHP 版本和扩展

  • PHP 8.0+

安装

您可以通过 composer 安装此包

composer require roadrunner-php/version-checker

用法

使用 RoadRunner\VersionChecker\VersionChecker 类的方法来检查已安装的 RoadRunner 版本的兼容性。VersionChecker 类有三个公开方法

  • greaterThan - 检查已安装的 RoadRunner 版本是否 大于或等于 指定版本。如果没有指定版本,则根据 spiral/roadrunner 包的最小要求版本确定最小所需版本。
  • lessThan - 检查已安装的 RoadRunner 版本是否 小于或等于 指定版本。
  • equal - 检查已安装的 RoadRunner 版本是否 等于 指定版本。

如果 RoadRunner 的已安装版本不符合指定的要求,这三个方法都会抛出 RoadRunner\VersionChecker\Exception\UnsupportedVersionException 异常。如果 RoadRunner 未安装,则会抛出 RoadRunner\VersionChecker\Exception\RoadrunnerNotInstalledException 异常。

use RoadRunner\VersionChecker\VersionChecker;
use RoadRunner\VersionChecker\Exception\UnsupportedVersionException;

$checker = new VersionChecker();

try {
    $checker->greaterThan('2023.1');
} catch (UnsupportedVersionException $exception) {
    var_dump($exception->getMessage()); // Installed RoadRunner version `2.12.3` not supported. Requires version `2023.1` or higher.
    var_dump($exception->getInstalledVersion()); // 2.12.3
    var_dump($exception->getRequestedVersion()); // 2023.1
}

try {
    $checker->lessThan('2.11');
} catch (UnsupportedVersionException $exception) {
    var_dump($exception->getMessage()); // Installed RoadRunner version `2.12.3` not supported. Requires version `2.11` or lower.
    var_dump($exception->getInstalledVersion()); // 2.12.3
    var_dump($exception->getRequestedVersion()); // 2.11
}

try {
    $checker->equal('2.11');
} catch (UnsupportedVersionException $exception) {
    var_dump($exception->getMessage()); // Installed RoadRunner version `2.12.3` not supported. Requires version `2.11`.
    var_dump($exception->getInstalledVersion()); // 2.12.3
    var_dump($exception->getRequestedVersion()); // 2.11
}

RoadRunner 二进制文件的路径

要配置 VersionChecker 在默认位置(具有 rr 文件名的应用程序根目录)之外的位置搜索 RoadRunner 二进制文件,您可以使用 RoadRunner\VersionChecker\Version\InstalledInterface 在应用程序容器中绑定 RoadRunner\VersionChecker\Version\Installed 类,并将所需的文件路径作为 $executablePath 参数传递。之后,您可以从应用程序容器中检索 VersionChecker 类。

使用 Spiral 框架容器的示例

use RoadRunner\VersionChecker\Version\InstalledInterface;
use RoadRunner\VersionChecker\Version\Installed;

$container->bindSingleton(InstalledInterface::class, new Installed(executablePath: 'some/path'));
$checker = $container->get(VersionChecker::class);

测试

composer test
composer psalm
composer cs

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件