HasMatcherTrait   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 19
dl 0
loc 36
rs 10
c 2
b 0
f 0
wmc 7

2 Methods

Rating   Name   Duplication   Size   Complexity  
A route() 0 7 2
A populateRequest() 0 16 5
1
<?php
2
3
namespace Nip\Router\Legacy\Router\Traits;
4
5
use Nip\Request;
6
use Nip\Router\Route\Route;
7
use Psr\Http\Message\ServerRequestInterface;
8
9
/**
10
 * Trait HasMatcherTrait
11
 * @package Nip\Router\Legacy\Router\Traits
12
 */
13
trait HasMatcherTrait
14
{
15
    /**
16
     * @param Request|ServerRequestInterface $request
17
     * @return array
18
     * @deprecated Use matchRequest($request)
19
     */
20
    public function route($request)
21
    {
22
        $return = $this->matchRequest($request);
0 ignored issues
show
Bug introduced by
It seems like matchRequest() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

22
        /** @scrutinizer ignore-call */ 
23
        $return = $this->matchRequest($request);
Loading history...
23
        if ($return['_route']) {
24
            $this->populateRequest($request, $return);
25
        }
26
        return $return;
27
    }
28
29
    /**
30
     * @param Request $request
31
     * @param $params
32
     */
33
    protected function populateRequest($request, $params)
34
    {
35
        foreach ($params as $param => $value) {
36
            switch ($param) {
37
                case 'module':
38
                    $request->setModuleName($value);
39
                    break;
40
                case 'controller':
41
                    $request->setControllerName($value);
42
                    break;
43
                case 'action':
44
                    $request->setActionName($value);
45
                    break;
46
                default:
47
                    $request->attributes->set($param, $value);
48
                    break;
49
            }
50
        }
51
    }
52
}
53