Total Complexity | 10 |
Total Lines | 63 |
Duplicated Lines | 0 % |
Coverage | 100% |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
14 | final class RequestMatcher implements RequestMatcherInterface |
||
15 | { |
||
16 | /** |
||
17 | * @var string |
||
18 | */ |
||
19 | private $path; |
||
20 | |||
21 | /** |
||
22 | * @var string |
||
23 | */ |
||
24 | private $host; |
||
25 | |||
26 | /** |
||
27 | * @var array |
||
28 | */ |
||
29 | private $methods = []; |
||
30 | |||
31 | /** |
||
32 | * @var string[] |
||
33 | */ |
||
34 | private $schemes = []; |
||
35 | |||
36 | /** |
||
37 | * The regular expressions used for path or host must be specified without delimiter. |
||
38 | * You do not need to escape the forward slash / to match it. |
||
39 | * |
||
40 | * @param string|null $path Regular expression for the path |
||
41 | * @param string|null $host Regular expression for the hostname |
||
42 | * @param string|string[]|null $methods Method or list of methods to match |
||
43 | * @param string|string[]|null $schemes Scheme or list of schemes to match (e.g. http or https) |
||
44 | */ |
||
45 | 10 | public function __construct($path = null, $host = null, $methods = [], $schemes = []) |
|
46 | { |
||
47 | 10 | $this->path = $path; |
|
48 | 10 | $this->host = $host; |
|
49 | 10 | $this->methods = array_map('strtoupper', (array) $methods); |
|
50 | 10 | $this->schemes = array_map('strtolower', (array) $schemes); |
|
51 | 10 | } |
|
52 | |||
53 | /** |
||
54 | * {@inheritdoc} |
||
55 | * |
||
56 | * @api |
||
57 | */ |
||
58 | 8 | public function matches(RequestInterface $request) |
|
77 | } |
||
78 | } |
||
79 |
This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent.
Consider making the comparison explicit by using
empty(..)
or! empty(...)
instead.