roadrunner-php/version-checker
Lightweight RoadRunner + PHP version compatibility checker. Detects your installed PHP version and validates it against the RoadRunner runtime requirements, helping prevent mismatched upgrades and deployment issues in CI/CD or local environments.
Make sure that your server is configured with following PHP version and extensions:
You can install the package via composer:
composer require roadrunner-php/version-checker
Use the RoadRunner\VersionChecker\VersionChecker methods to check the compatibility of the installed RoadRunner
version. The VersionChecker class has three public methods:
spiral/roadrunner package.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
}
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);
composer test
composer psalm
composer cs
The MIT License (MIT). Please see License File for more information.
How can I help you explore Laravel packages today?