Passed
Pull Request — master (#196)
by Sergei
02:31
created

Route   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 13
c 1
b 0
f 0
dl 0
loc 37
ccs 0
cts 17
cp 0
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 19 1
A getRoute() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Router\Attribute;
6
7
use Attribute;
8
use Stringable;
9
use Yiisoft\Router\Route as RouteObject;
10
11
#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)]
12
final class Route implements RouteAttributeInterface
13
{
14
    private RouteObject $route;
15
16
    /**
17
     * @param array<string,scalar|Stringable|null> $defaults Parameter default values indexed by parameter names.
18
     * @param bool $override Marks route as override. When added it will replace existing route with the same name.
19
     * @param array $disabledMiddlewares Excludes middleware from being invoked when action is handled.
20
     * It is useful to avoid invoking one of the parent group middleware for
21
     * a certain route.
22
     */
23
    public function __construct(
24
        array $methods,
25
        string $pattern,
26
        ?string $name = null,
27
        array $middlewares = [],
28
        array $defaults = [],
29
        array $hosts = [],
30
        bool $override = false,
31
        array $disabledMiddlewares = []
32
    ) {
33
        $this->route = new RouteObject(
34
            methods: $methods,
35
            pattern: $pattern,
36
            name: $name,
37
            middlewares: $middlewares,
38
            defaults: $defaults,
39
            hosts: $hosts,
40
            override: $override,
41
            disabledMiddlewares: $disabledMiddlewares
42
        );
43
    }
44
45
    public function getRoute(): RouteObject
46
    {
47
        return $this->route;
48
    }
49
}
50