CallableMiddlewareStackTrait   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 1
Bugs 1 Features 0
Metric Value
wmc 2
c 1
b 1
f 0
lcom 0
cbo 1
dl 0
loc 24
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 10 2
1
<?php
2
3
namespace Schnittstabil\Psr7\MiddlewareStack;
4
5
use Psr\Http\Message\ResponseInterface;
6
use Psr\Http\Message\RequestInterface;
7
8
/**
9
 * Middleware __invoke implementation for middleware stacks.
10
 */
11
trait CallableMiddlewareStackTrait
12
{
13
    use MiddlewareStackTrait;
14
15
    /**
16
     * Invoke stacked middlewares.
17
     *
18
     * @param RequestInterface|mixed  $request  request object
19
     * @param ResponseInterface|mixed $response response object
20
     * @param callable                $next     next middleware
21
     *
22
     * @return ResponseInterface PSR7 response object
23
     */
24
    public function __invoke($request, $response, callable $next)
25
    {
26
        $middlewareStack = $this->middlewareStack;
27
28
        if ($middlewareStack === null) {
29
            return $next($request, $response);
30
        }
31
32
        return $middlewareStack($request, $response, $next);
33
    }
34
}
35