Passed
Push — master ( 3f2eaa...f80696 )
by Korotkov
02:51
created

SingletonsPool::__wakeup()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 0
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 2
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
/**
6
 * @author    : Korotkov Danila <[email protected]>
7
 * @license   https://mit-license.org/ MIT
8
 */
9
10
namespace AntiPatterns\SingletonsPool;
11
12
/**
13
 * Class SingletonsPool
14
 * @package AntiPatterns\SingletonsPool
15
 */
16
final class SingletonsPool
17
{
18
19
    /**
20
     * @var array
21
     */
22
    protected static $instances = [];
23
24
    /**
25
     * @param string $instanceName
26
     * @return mixed
27
     */
28
    public static function getInstance(string $instanceName): self
29
    {
30
        if (!array_key_exists($instanceName, static::$instances)){
31
            static::$instances[$instanceName] = new static;
32
        }
33
34
        return static::$instances[$instanceName];
35
    }
36
37
    public function __construct()
38
    {
39
    }
40
41
    /**
42
     * @codeCoverageIgnore
43
     */
44
    public function __sleep()
45
    {
46
    }
47
48
    /**
49
     * @codeCoverageIgnore
50
     */
51
    public function __wakeup()
52
    {
53
    }
54
55
    /**
56
     * @codeCoverageIgnore
57
     */
58
    public function __clone()
59
    {
60
    }
61
}
62