VaultRoute::createEndpoint()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 9
nc 1
nop 0
dl 0
loc 15
rs 9.4285
c 0
b 0
f 0
1
<?php
2
/**
3
 * Spiral Framework.
4
 *
5
 * @license   MIT
6
 * @author    Anton Titov (Wolfy-J)
7
 */
8
9
namespace Spiral\Vault;
10
11
use Psr\Http\Message\ResponseInterface as Response;
12
use Psr\Http\Message\ServerRequestInterface as Request;
13
use Spiral\Http\Routing\AbstractRoute;
14
use Spiral\Http\Routing\Traits\CoreTrait;
15
16
/**
17
 * Route similar to Controllers route but without controller namespace mapping.
18
 */
19
class VaultRoute extends AbstractRoute
20
{
21
    use CoreTrait;
22
23
    /**
24
     * @param string $name
25
     * @param string $pattern
26
     * @param array  $defaults
27
     */
28
    public function __construct(string $name, string $pattern, array $defaults)
29
    {
30
        parent::__construct($name, $defaults);
31
        $this->pattern = $pattern;
32
    }
33
34
    /**
35
     * {@inheritdoc}
36
     */
37
    protected function createEndpoint(): callable
38
    {
39
        $route = $this;
40
41
        return function (Request $request, Response $response) use ($route) {
42
            $matches = $this->getMatches();
43
44
            return $this->callAction(
45
                $matches['controller'],
46
                $matches['action'],
47
                $matches,
48
                [Request::class => $request, Response::class => $response]
49
            );
50
        };
51
    }
52
}