Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
16.67% covered (danger)
16.67%
3 / 18
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
Version
16.67% covered (danger)
16.67%
3 / 18
0.00% covered (danger)
0.00%
0 / 2
19.47
0.00% covered (danger)
0.00%
0 / 1
 getString
60.00% covered (warning)
60.00%
3 / 5
0.00% covered (danger)
0.00%
0 / 1
3.58
 getArray
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3namespace BO\Slim;
4
5class Version
6{
7    const string UNKNOWN = 'version.unknown';
8
9    public static function getString(): string
10    {
11        $file = \App::APP_PATH . '/VERSION';
12        if (is_file($file)) {
13            $contents = file_get_contents($file);
14            return is_string($contents) ? trim($contents) : static::UNKNOWN;
15        }
16        return static::UNKNOWN;
17    }
18
19    /**
20     * @return string[]
21     * @psalm-api
22     */
23    public static function getArray(): array
24    {
25        $version = static::getString();
26        $array = [];
27        if (preg_match('#^v(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)$#', $version, $array)) {
28            return [
29                'major' => $array['major'],
30                'minor' => $array['minor'],
31                'patch' => $array['patch'],
32            ];
33        }
34        return [
35            'major' => "unknown",
36            'minor' => "0",
37            'patch' => "0",
38        ];
39    }
40}