Passed
Push — feature/initial-implementation ( e556a2...0c2c6c )
by Fike
01:52
created

AbstractType::getInstance()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 4
nc 2
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace AmaTeam\ElasticSearch\Mapping\Type;
6
7
use AmaTeam\ElasticSearch\Mapping\TypeInterface;
8
9
abstract class AbstractType implements TypeInterface
10
{
11
    protected static $registry = [];
12
13
    public function getFriendlyId(): string
14
    {
15
        return $this->getId();
16
    }
17
18
    public static function getInstance()
19
    {
20
        $class = get_called_class();
21
        if (!isset(self::$registry[$class])) {
22
            self::$registry[$class] = new static();
23
        }
24
        return self::$registry[$class];
25
    }
26
}
27