roadrunner-php / version-checker
The package for checking the version of the RoadRunner
                                    Fund package maintenance!
                                                                            
                                                                                                                                        roadrunner-server
                                                                                    
                                                                
Installs: 921 105
Dependents: 1
Suggesters: 0
Security: 0
Stars: 2
Watchers: 4
Forks: 2
pkg:composer/roadrunner-php/version-checker
Requires
- php: ^8.0
 - composer-runtime-api: ^2.0
 - composer/semver: ^3.3
 - symfony/process: ^5.4 || ^6.0 || ^7.0
 
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.8
 - phpunit/phpunit: ^9.6 || ^10.0
 - vimeo/psalm: ^5.9
 
This package is not auto-updated.
Last update: 2025-10-21 18:04:09 UTC
README
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/roadrunnerpackage. - 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.