MiddlewaresAwareTrait   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 5
cbo 1
dl 0
loc 60
ccs 13
cts 13
cp 1
rs 10
c 0
b 0
f 0
lcom 1

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getMiddlewares() 0 10 2
A setMiddlewares() 0 6 1
A addMiddleware() 0 6 1
A executeMiddlewares() 0 7 1
1
<?php
2
3
namespace Thruster\Component\HttpMiddleware;
4
5
use Psr\Http\Message\ResponseInterface;
6
use Psr\Http\Message\ServerRequestInterface;
7
8
/**
9
 * Trait MiddlewaresAwareTrait
10
 *
11
 * @package Thruster\Component\HttpMiddleware
12
 * @author  Aurimas Niekis <[email protected]>
13
 */
14
trait MiddlewaresAwareTrait
15
{
16
    /**
17
     * @var Middlewares
18
     */
19
    protected $middlewares;
20
21
    /**
22
     * @return Middlewares
23
     */
24 2
    public function getMiddlewares()
25
    {
26 2
        if ($this->middlewares) {
27 2
            return $this->middlewares;
28
        }
29
30 1
        $this->middlewares = new Middlewares();
31
32 1
        return $this->middlewares;
33
    }
34
35
    /**
36
     * @param Middlewares $middlewares
37
     *
38
     * @return $this
39
     */
40 1
    public function setMiddlewares(Middlewares $middlewares)
41
    {
42 1
        $this->middlewares = $middlewares;
43
44 1
        return $this;
45
    }
46
47
    /**
48
     * @param callable $middleware
49
     *
50
     * @return $this
51
     */
52 2
    public function addMiddleware(callable $middleware)
53
    {
54 2
        $this->getMiddlewares()->add($middleware);
55
56 2
        return $this;
57
    }
58
59
    /**
60
     * @param ServerRequestInterface $request
61
     * @param ResponseInterface      $response
62
     * @param callable               $next
63
     *
64
     * @return ResponseInterface
65
     */
66 1
    public function executeMiddlewares(
67
        ServerRequestInterface $request,
68
        ResponseInterface $response,
69
        callable $next = null
70
    ) : ResponseInterface {
71 1
        return $this->getMiddlewares()->__invoke($request, $response, $next);
72
    }
73
}
74