Completed
Push — master ( 298ac7...0024da )
by Oleg
12:58
created

ConfigProvider   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 0
dl 0
loc 75
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 72 1
1
<?php
2
declare(strict_types=1);
3
4
namespace SlayerBirden\DataFlowServer\Authorization;
5
6
use Doctrine\ORM\EntityManager;
7
use Psr\Log\LoggerInterface;
8
use SlayerBirden\DataFlowServer\Authorization\Controller\GetResourcesAction;
9
use SlayerBirden\DataFlowServer\Authorization\Controller\SavePermissionsAction;
10
use SlayerBirden\DataFlowServer\Authorization\Service\HistoryManagement;
11
use SlayerBirden\DataFlowServer\Authorization\Service\PermissionManager;
12
use SlayerBirden\DataFlowServer\Authorization\Service\ResourceManager;
13
use SlayerBirden\DataFlowServer\Authorization\Validation\ResourceValidator;
14
use SlayerBirden\DataFlowServer\Authorization\Validation\ResourceValidatorFactory;
15
use SlayerBirden\DataFlowServer\Zend\InputFilter\ProxyFilterManagerFactory;
16
use Zend\Expressive\Application;
17
use Zend\Expressive\Router\RouteCollector;
18
use Zend\Hydrator\ClassMethods;
19
use Zend\ServiceManager\AbstractFactory\ConfigAbstractFactory;
20
21
class ConfigProvider
22
{
23
    public function __invoke(): array
24
    {
25
        return [
26
            ConfigAbstractFactory::class => [
27
                PermissionManager::class => [
28
                    EntityManager::class,
29
                ],
30
                ResourceManager::class => [
31
                    RouteCollector::class,
32
                ],
33
                GetResourcesAction::class => [
34
                    ResourceManagerInterface::class,
35
                ],
36
                HistoryManagement::class => [
37
                    EntityManager::class,
38
                ],
39
                SavePermissionsAction::class => [
40
                    EntityManager::class,
41
                    LoggerInterface::class,
42
                    'PermissionsInputFilter',
43
                    HistoryManagementInterface::class,
44
                    ClassMethods::class,
45
                ],
46
            ],
47
            'doctrine' => [
48
                'paths' => [
49
                    'src/Authorization/Entities'
50
                ],
51
            ],
52
            'dependencies' => [
53
                'delegators' => [
54
                    Application::class => [
55
                        Factory\RoutesDelegator::class,
56
                    ],
57
                ],
58
                'aliases' => [
59
                    PermissionManagerInterface::class => PermissionManager::class,
60
                    ResourceManagerInterface::class => ResourceManager::class,
61
                    HistoryManagementInterface::class => HistoryManagement::class,
62
                ],
63
                'factories' => [
64
                    'PermissionsInputFilter' => ProxyFilterManagerFactory::class,
65
                ],
66
            ],
67
            'validators' => [
68
                'aliases' => [
69
                    'resourcesValidator' => ResourceValidator::class,
70
                    'resourceValidator' => ResourceValidator::class,
71
                ],
72
                'factories' => [
73
                    ResourceValidator::class => ResourceValidatorFactory::class,
74
                ],
75
            ],
76
            'input_filter_specs' => [
77
                'PermissionsInputFilter' => [
78
                    'resources' => [
79
                        'required' => true,
80
                        'filters' => [
81
                            [
82
                                'name' => 'stringtrim',
83
                            ]
84
                        ],
85
                        'validators' => [
86
                            [
87
                                'name' => 'resourcesValidator',
88
                            ],
89
                        ]
90
                    ],
91
                ],
92
            ],
93
        ];
94
    }
95
}
96