Test Failed
Push — master ( a309d2...0e4b58 )
by butschster
17:34 queued 09:02
created

MiddlewareDeclaration   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
eloc 18
dl 0
loc 31
ccs 13
cts 13
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A declare() 0 17 1
A getInstructions() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Spiral\Scaffolder\Declaration;
6
7
use Psr\Http\Message\ResponseInterface;
8
use Psr\Http\Message\ServerRequestInterface;
9
use Psr\Http\Server\MiddlewareInterface;
10
use Psr\Http\Server\RequestHandlerInterface;
11
12
/**
13
 * Middleware declaration.
14
 */
15
class MiddlewareDeclaration extends AbstractDeclaration implements HasInstructions
16
{
17
    public const TYPE = 'middleware';
18
19
    /**
20
     * Declare default process method body.
21
     */
22 2
    public function declare(): void
23
    {
24 2
        $this->class->addImplement(MiddlewareInterface::class);
25
26 2
        $this->class
27 2
            ->addMethod('process')
28 2
            ->setPublic()
29 2
            ->setReturnType(ResponseInterface::class)
30 2
            ->addBody('return $handler->handle($request);');
31
32 2
        $this->class->getMethod('process')
33 2
            ->addParameter('request')
34 2
            ->setType(ServerRequestInterface::class);
35
36 2
        $this->class->getMethod('process')
37 2
            ->addParameter('handler')
38 2
            ->setType(RequestHandlerInterface::class);
39
    }
40
41
    public function getInstructions(): array
42
    {
43
        return [
44
            'Don\'t forget to activate a middleware in the \'<comment>App\Application\Bootloader\RoutesBootloader</comment>\'',
45
            'Read more about Middleware in the documentation: https://spiral.dev/docs/http-middleware',
46
        ];
47
    }
48
}
49