DiactorosProvider::getDefinitions()   B
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 30
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 30
ccs 8
cts 8
cp 1
rs 8.8571
c 0
b 0
f 0
cc 1
eloc 18
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Mosaic\Http\Providers;
4
5
use Interop\Container\Definition\DefinitionProviderInterface;
6
use Mosaic\Cement\Components\Definition;
7
use Mosaic\Container\Container;
8
use Mosaic\Http\Adapters\Psr7\Request;
9
use Mosaic\Http\Adapters\Psr7\Response;
10
use Mosaic\Http\Adapters\Psr7\ResponseFactory;
11
use Mosaic\Http\Middleware\DispatchRequest;
12
use Mosaic\Http\Request as RequestInterface;
13
use Mosaic\Http\Response as ResponseInterface;
14
use Mosaic\Http\ResponseFactory as ResponseFactoryInterface;
15
use Mosaic\Routing\RouteDispatcher;
16
use Psr\Http\Message\ResponseInterface as Psr7Response;
17
use Psr\Http\Message\ServerRequestInterface as Psr7Request;
18
use Zend\Diactoros\Response as DiactorosResponse;
19
use Zend\Diactoros\ServerRequestFactory;
20
21
class DiactorosProvider implements DefinitionProviderInterface
22
{
23
    /**
24
     * @return array|Definition[]
25
     */
26 1
    public function getDefinitions() : array
27
    {
28
        return [
29
            RequestInterface::class => function () {
30
                return new Request(
31
                    ServerRequestFactory::fromGlobals()
32
                );
33 1
            },
34
            ResponseInterface::class => function () {
35
                return new Response(
36
                    new DiactorosResponse
37
                );
38 1
            },
39
            ResponseFactoryInterface::class => function () {
40
                return new ResponseFactory;
41 1
            },
42
            Psr7Request::class => function (Container $container) {
43
                return $container->get(RequestInterface::class)->toPsr7();
44 1
            },
45
            Psr7Response::class => function (Container $container) {
46
                return $container->get(ResponseInterface::class)->toPsr7();
47 1
            },
48 1
            DispatchRequest::class => function (Container $container) {
49
                return new DispatchRequest(
50
                    $container->get(RouteDispatcher::class),
51
                    $container->get(ResponseFactoryInterface::class)
52
                );
53 1
            }
54
        ];
55
    }
56
}
57