FinalRoute::__construct()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 2.0185

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 8
ccs 5
cts 6
cp 0.8333
rs 9.4285
cc 2
eloc 5
nc 2
nop 2
crap 2.0185
1
<?php
2
3
4
  namespace ReRoute\Route;
5
6
  use ReRoute\RouteMatch;
7
  use ReRoute\Template\UrlTemplate;
8
  use ReRoute\Url;
9
  use ReRoute\UrlBuilder;
10
11
12
  /**
13
   * @package ReRoute\AbstractRoute
14
   */
15
  class FinalRoute extends AbstractRoute {
16
17
    /**
18
     * @var
19
     */
20
    protected $result;
21
22
23
    /**
24
     * @param string $routeResult
25
     * @param null|UrlTemplate $urlTemplate
26
     */
27 114
    public function __construct($routeResult, UrlTemplate $urlTemplate = null) {
28 114
      if (!is_string($routeResult)) {
29
        throw new \InvalidArgumentException('Invalid result type. Expect string. Given "' . gettype($routeResult) . '"');
30
      }
31
32 114
      $this->result = $routeResult;
33 114
      parent::__construct($urlTemplate);
34 114
    }
35
36
37
    /**
38
     * @return mixed
39
     */
40 87
    public function getResult() {
41 87
      return $this->result;
42
    }
43
44
45
    /**
46
     * @param \ReRoute\RequestContext $requestContext
47
     *
48
     * @return RouteMatch|bool
49
     */
50 81
    public function doMatch(\ReRoute\RequestContext $requestContext) {
51 81
      if (false == $this->isMatched($requestContext)) {
0 ignored issues
show
Coding Style Best Practice introduced by
It seems like you are loosely comparing two booleans. Considering using the strict comparison === instead.

When comparing two booleans, it is generally considered safer to use the strict comparison operator.

Loading history...
52 48
        return false;
53
      }
54 42
      $routeMatch = new RouteMatch($this->getResult());
55 42
      $this->storeParametersToRouteMatch($routeMatch);
56 42
      return $routeMatch;
57
    }
58
59
60
    /**
61
     * @inheritdoc
62
     */
63 27
    public function build(Url $url, UrlBuilder $urlBuilder) {
64 27
      parent::build($url, $urlBuilder);
65 24
      $this->buildModifiers($url, $urlBuilder);
66
    }
67
  }