Test Failed
Pull Request — master (#58)
by mon
01:58
created

MapHandler::setDefaultMapClass()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 3
ccs 0
cts 2
cp 0
crap 2
rs 10
1
<?php
2
3
namespace FileEye\MimeMap;
4
5
use FileEye\MimeMap\Map\DefaultMap;
6
use FileEye\MimeMap\Map\MimeMapInterface;
7
8
/**
9
 * Class for managing map singletons.
10
 */
11
abstract class MapHandler
12
{
13
    /**
14
     * The default map PHP class.
15
     */
16
    const DEFAULT_MAP_CLASS = DefaultMap::class;
17
18
    /**
19
     * The default map class to use.
20
     *
21
     * It can be overridden by ::setDefaultMapClass.
22
     *
23
     * @var string
24
     */
25
    protected static $defaultMapClass = MapHandler::DEFAULT_MAP_CLASS;
26
27
    /**
28
     * Sets a map class as default for new instances.
29
     *
30
     * @param string $map_class A FQCN.
31
     */
32
    public static function setDefaultMapClass(string $map_class): void
33
    {
34
        static::$defaultMapClass = $map_class;
35
    }
36
37
    /**
38
     * Returns the map instance.
39
     *
40
     * @param string|null $map_class
41
     *   (Optional) The map FQCN to be used. If null, the default map will be
42
     *   used.
43
     */
44 95
    public static function map(string $map_class = null): MimeMapInterface
45
    {
46 95
        if ($map_class === null) {
47 87
            $map_class = static::$defaultMapClass;
48
        }
49 95
        return $map_class::getInstance();
50
    }
51
}
52