Passed
Push — master ( 6f4616...466e1a )
by Mike
02:15
created

WebFactory   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Test Coverage

Coverage 64.71%

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 55
ccs 11
cts 17
cp 0.6471
rs 10
c 0
b 0
f 0
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A createValidator() 0 3 1
A getPluginCollection() 0 3 1
A createRouteProvider() 0 5 1
A createResponseHandler() 0 3 1
A getRoutingFacade() 0 3 1
A createExecutionProvider() 0 6 1
1
<?php
2
3
4
namespace Xervice\Web;
5
6
7
use Xervice\Core\Factory\AbstractFactory;
8
use Xervice\Routing\RoutingFacade;
9
use Xervice\Web\Business\Executor\ExecutionProvider;
10
use Xervice\Web\Business\Executor\ExecutionProviderInterface;
11
use Xervice\Web\Business\Executor\ResponseHandler\ResponseHandlerInterface;
12
use Xervice\Web\Business\Executor\ResponseHandler\StringResponseHandler;
13
use Xervice\Web\Business\Executor\Validator\Validator;
14
use Xervice\Web\Business\Executor\Validator\ValidatorInterface;
15
use Xervice\Web\Business\Plugin\PluginCollection;
16
use Xervice\Web\Business\Provider\RouteProvider;
17
use Xervice\Web\Business\Provider\RouteProviderInterface;
18
19
class WebFactory extends AbstractFactory
20
{
21
    /**
22
     * @return \Xervice\Web\Business\Executor\ExecutionProviderInterface
23
     */
24 2
    public function createExecutionProvider(): ExecutionProviderInterface
25
    {
26 2
        return new ExecutionProvider(
27 2
            $this->getRoutingFacade(),
28 2
            $this->createResponseHandler(),
29 2
            $this->createValidator()
30
        );
31
    }
32
33
    /**
34
     * @return \Xervice\Web\Business\Executor\Validator\ValidatorInterface
35
     */
36 2
    public function createValidator(): ValidatorInterface
37
    {
38 2
        return new Validator();
39
    }
40
41
    /**
42
     * @return \Xervice\Web\Business\Executor\ResponseHandler\ResponseHandlerInterface
43
     */
44 2
    public function createResponseHandler(): ResponseHandlerInterface
45
    {
46 2
        return new StringResponseHandler();
47
    }
48
49
    /**
50
     * @return \Xervice\Web\Business\Provider\RouteProvider
51
     */
52
    public function createRouteProvider(): RouteProviderInterface
53
    {
54
        return new RouteProvider(
55
            $this->getPluginCollection(),
56
            $this->getRoutingFacade()
57
        );
58
    }
59
60
    /**
61
     * @return \Xervice\Routing\RoutingFacade
62
     */
63 2
    public function getRoutingFacade(): RoutingFacade
64
    {
65 2
        return $this->getDependency(WebDependencyProvider::ROUTING_FACADE);
66
    }
67
68
    /**
69
     * @return \Xervice\Web\Business\Plugin\PluginCollection
70
     */
71
    public function getPluginCollection(): PluginCollection
72
    {
73
        return $this->getDependency(WebDependencyProvider::ROUTE_PROVIDER_COLLECTION);
74
    }
75
}