Factory   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
c 1
b 0
f 0
dl 0
loc 20
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A createFromArray() 0 11 3
A __construct() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace RemotelyLiving\Doorkeeper\Features;
6
7
use RemotelyLiving\Doorkeeper\Rules;
8
9
final class Factory
10
{
11
    private Rules\Factory $ruleFactory;
12
13
    public function __construct(Rules\Factory $rulesFactory = null)
14
    {
15
        $this->ruleFactory = $rulesFactory ?? new Rules\Factory();
16
    }
17
18
    public function createFromArray(array $feature): Feature
19
    {
20
        $rules = [];
21
22
        if (isset($feature['rules'])) {
23
            foreach ($feature['rules'] as $rule) {
24
                $rules[] = $this->ruleFactory->createFromArray($rule);
25
            }
26
        }
27
        
28
        return new Feature($feature['name'], $feature['enabled'], $rules);
29
    }
30
}
31