AccessorRegistry   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 35
c 0
b 0
f 0
wmc 5
lcom 1
cbo 1
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A registerAccessor() 0 10 2
A getAccessors() 0 4 1
A getAccessor() 0 4 2
1
<?php
2
3
namespace Saxulum\Accessor;
4
5
trait AccessorRegistry
6
{
7
    /**
8
     * @var AccessorInterface[]
9
     */
10
    private static $__accessors = array();
11
12
    final public static function registerAccessor(AccessorInterface $accessor)
13
    {
14
        $prefix = $accessor->getPrefix();
15
16
        if (isset(self::$__accessors[$prefix])) {
17
            throw new \Exception("Override Accessor is not allowed, to enhance stability!");
18
        }
19
20
        self::$__accessors[$prefix] = $accessor;
21
    }
22
23
    /**
24
     * @return AccessorInterface[]
25
     */
26
    final public static function getAccessors()
27
    {
28
        return self::$__accessors;
29
    }
30
31
    /**
32
     * @param  string                 $prefix
33
     * @return null|AccessorInterface
34
     */
35
    final public static function getAccessor($prefix)
36
    {
37
        return isset(self::$__accessors[$prefix]) ? self::$__accessors[$prefix] : null;
38
    }
39
}
40