Completed
Push — master ( 2edeb4...8f93c5 )
by Albert
03:04
created

HttpServiceProvider::register()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 3
Bugs 0 Features 2
Metric Value
c 3
b 0
f 2
dl 0
loc 22
ccs 0
cts 17
cp 0
rs 9.2
cc 1
eloc 13
nc 1
nop 0
crap 2
1
<?php
2
3
namespace Albert221\Blog\ServiceProvider;
4
5
use Albert221\Blog\Controller\PostController;
6
use Albert221\Blog\Repository\PostRepositoryInterface;
7
use Albert221\Blog\Route\RouteCollection;
8
use League\Container\ServiceProvider\AbstractServiceProvider;
9
use Psr\Http\Message\ResponseInterface;
10
use Psr\Http\Message\ServerRequestInterface;
11
use Zend\Diactoros\Response;
12
use Zend\Diactoros\Response\EmitterInterface;
13
use Zend\Diactoros\Response\SapiEmitter;
14
use Zend\Diactoros\ServerRequestFactory;
15
16
class HttpServiceProvider extends AbstractServiceProvider
17
{
18
    /**
19
     * {@inheritdoc}
20
     */
21
    protected $provides = [
22
        ServerRequestInterface::class,
23
        ResponseInterface::class,
24
        EmitterInterface::class,
25
        RouteCollection::class,
26
        PostController::class
27
    ];
28
29
    /**
30
     * {@inheritdoc}
31
     */
32
    public function register()
33
    {
34
        $this->getContainer()->share(ServerRequestInterface::class, function () {
35
            return ServerRequestFactory::fromGlobals();
36
        });
37
38
        $this->getContainer()->share(ResponseInterface::class, Response::class);
39
40
        $this->getContainer()->share(EmitterInterface::class, SapiEmitter::class);
41
42
        $this->getContainer()->share(RouteCollection::class, function () {
43
            return require sprintf(
44
                '%s/config/routes.php',
45
                $this->getContainer()->get('baseDir')
46
            );
47
        });
48
49
        $this->getContainer()->add(PostController::class)
50
            ->withArgument(PostRepositoryInterface::class)
51
            ->withArgument('paginatorBuilder')
52
            ->withArgument('twigWidgetExtension');
53
    }
54
}
55