PhpVersionCheck   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Importance

Changes 2
Bugs 1 Features 1
Metric Value
eloc 14
c 2
b 1
f 1
dl 0
loc 45
rs 10
wmc 7

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A getPhpVersion() 0 3 1
A checkStatus() 0 14 5
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