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

AbstractType   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 16
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
dl 0
loc 16
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getInstance() 0 7 2
A getFriendlyId() 0 3 1
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