Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Version Checker Laravel Package

roadrunner-php/version-checker

Checks the installed RoadRunner version against required constraints. Provides greaterThan, lessThan, and equal methods, throwing UnsupportedVersionException or RoadrunnerNotInstalledException on mismatch. Requires PHP 8.0+.

View on GitHub
Deep Wiki
Context7

RoadRunner VersionChecker

PHP Version Require Latest Stable Version phpunit psalm Codecov Total Downloads

Requirements

Make sure that your server is configured with following PHP version and extensions:

  • PHP 8.0+

Installation

You can install the package via composer:

composer require roadrunner-php/version-checker

Usage

Use the RoadRunner\VersionChecker\VersionChecker methods to check the compatibility of the installed RoadRunner version. The VersionChecker class has three public methods:

  • greaterThan - Checks if the installed version of RoadRunner is greater than or equal to the specified version. If no version is specified, the minimum required version will be determined based on the minimum required version of the spiral/roadrunner package.
  • lessThan - Checks if the installed version of RoadRunner is less than or equal to the specified version.
  • equal - Checks if the installed version of RoadRunner is equal to the specified version.

All three methods throw an RoadRunner\VersionChecker\Exception\UnsupportedVersionException if the installed version of RoadRunner does not meet the specified requirements. If RoadRunner is not installed, a RoadRunner\VersionChecker\Exception\RoadrunnerNotInstalledException is thrown.

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
}

Path to the RoadRunner binary

To configure the VersionChecker to search for the RoadRunner binary in a location other than the default (application root with a rr filename), you can bind the RoadRunner\VersionChecker\Version\InstalledInterface within application container using the RoadRunner\VersionChecker\Version\Installed class and passing the desired file path as the $executablePath parameter. After that, you can retrieve the VersionChecker class from application container.

Example with Spiral Framework container:

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

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

Testing

composer test
composer psalm
composer cs

License

The MIT License (MIT). Please see License File for more information.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast