public function run() : \Jyxo\Beholder\Result
{
// If we test extensions they have to be installed
if (!empty($this->extension) && !extension_loaded($this->extension)) {
return new \Jyxo\Beholder\Result(\Jyxo\Beholder\Result::NOT_APPLICABLE, sprintf('Extension %s missing', $this->extension));
}
// Current version
$actual = !empty($this->extension) ? phpversion($this->extension) : phpversion();
// Version comparison
if (true !== version_compare($actual, $this->version, $this->comparison)) {
return new \Jyxo\Beholder\Result(\Jyxo\Beholder\Result::FAILURE, sprintf('Version %s, expected %s %s', $actual, $this->comparison, $this->version));
}
// OK
return new \Jyxo\Beholder\Result(\Jyxo\Beholder\Result::SUCCESS, sprintf('Version %s', $actual));
}