SimpleFieldFactory   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 14
dl 0
loc 30
ccs 0
cts 16
cp 0
rs 10
c 0
b 0
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 11 2
A createFormFieldFactory() 0 6 1
A createDataManagerFactory() 0 6 1
1
<?php
2
3
namespace WebTheory\Saveyour\Factory;
4
5
use WebTheory\Saveyour\Contracts\Factory\FieldDataManagerResolverFactoryInterface;
6
use WebTheory\Saveyour\Contracts\Factory\FormFieldResolverFactoryInterface;
7
8
class SimpleFieldFactory extends FieldFactory
9
{
10
    public function __construct(array $options = [])
11
    {
12
        $field = $options['form_field_factory'] ?? [];
13
        $manager = $options['data_manager_factory'] ?? [];
14
        $controller = $options['controller'] ?? null;
15
16
        $this->formFieldFactory = $this->createFormFieldFactory($field);
17
        $this->dataManagerFactory = $this->createDataManagerFactory($manager);
18
19
        if (isset($controller)) {
20
            $this->controller = $controller;
21
        }
22
    }
23
24
    protected function createFormFieldFactory(array $options): FormFieldResolverFactoryInterface
25
    {
26
        $namespaces = $options['namespaces'] ?? [];
27
        $fields = $options['fields'] ?? [];
28
29
        return new FormFieldFactory($namespaces, $fields);
30
    }
31
32
    protected function createDataManagerFactory(array $options): FieldDataManagerResolverFactoryInterface
33
    {
34
        $namespaces = $options['namespaces'] ?? [];
35
        $managers = $options['managers'] ?? [];
36
37
        return new DataManagerFactory($namespaces, $managers);
38
    }
39
}
40