PhpVersionCheck::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 3
c 1
b 0
f 1
nc 1
nop 3
dl 0
loc 5
rs 10
1
<?php
2
namespace BretRZaun\StatusPage\Check;
3
4
use BretRZaun\StatusPage\Result;
5
6
class PhpVersionCheck extends AbstractCheck
7
{
8
    /** @var string */
9
    protected $greaterEquals;
10
11
    /** @var string */
12
    protected $lessThan;
13
14
    /**
15
     *
16
     * @param string $label Label
17
     * @param string $greaterEquals minimum PHP version (optional)
18
     * @param string $lessThan PHP version has to be smaller than this (optional)
19
     */
20
    public function __construct(string $label, string $greaterEquals = null, string $lessThan = null)
21
    {
22
        parent::__construct($label);
23
        $this->greaterEquals = $greaterEquals;
24
        $this->lessThan = $lessThan;
25
    }
26
27
    public function getPhpVersion(): string
28
    {
29
        return PHP_VERSION;
30
    }
31
32
    /**
33
     * Check URL
34
     *
35
     * @return Result
36
     */
37
    public function checkStatus(): Result
38
    {
39
        $result = new Result($this->label);
40
41
        $phpVersion = $this->getPhpVersion();
42
        if (null !== $this->greaterEquals && !version_compare($this->greaterEquals, $phpVersion, '<=')) {
43
            $result->setError("PHP version must be >= {$this->greaterEquals}; is ".$phpVersion);
44
        }
45
46
        if (null !== $this->lessThan && !version_compare($this->lessThan, $phpVersion, '>')) {
47
            $result->setError("PHP version must be < {$this->lessThan}; is ".$phpVersion);
48
        }
49
50
        return $result;
51
    }
52
}
53