1 | <?php declare(strict_types=1); |
||
2 | |||
3 | namespace WyriHaximus\React\Http\Middleware; |
||
4 | |||
5 | use Psr\Http\Message\ResponseInterface; |
||
6 | use Psr\Http\Message\ServerRequestInterface; |
||
7 | use function React\Promise\resolve; |
||
0 ignored issues
–
show
|
|||
8 | |||
9 | final class WithRandomHeadersMiddleware |
||
10 | { |
||
11 | private $headers = []; |
||
12 | |||
13 | private $minimum = 2; |
||
14 | |||
15 | private $maximum = 2; |
||
16 | |||
17 | /** |
||
18 | * @param array $headers |
||
19 | */ |
||
20 | 1 | public function __construct(array $headers, int $minimum = 2, int $maximum = 2) |
|
21 | { |
||
22 | 1 | $this->headers = $headers; |
|
23 | 1 | $this->minimum = $minimum; |
|
24 | 1 | $this->maximum = $maximum; |
|
25 | |||
26 | 1 | $headersCount = count($headers); |
|
27 | 1 | if ($this->minimum > $headersCount) { |
|
28 | $this->minimum = $headersCount; |
||
29 | } |
||
30 | 1 | if ($this->maximum > $headersCount) { |
|
31 | $this->maximum = $headersCount; |
||
32 | } |
||
33 | 1 | if ($this->maximum < $this->minimum) { |
|
34 | $this->maximum = $this->minimum; |
||
35 | } |
||
36 | 1 | } |
|
37 | |||
38 | public function __invoke(ServerRequestInterface $request, callable $next) |
||
39 | { |
||
40 | 1 | return resolve($next($request))->then(function (ResponseInterface $response) { |
|
41 | 1 | $count = random_int($this->minimum, $this->maximum); |
|
42 | 1 | $headers = $this->headers; |
|
43 | 1 | for ($i = 0; $i < $count; $i++) { |
|
44 | 1 | $randomizer = array_keys($headers); |
|
45 | 1 | $header = $randomizer[random_int(0, count($headers) - 1)]; |
|
46 | 1 | $response = $response->withHeader($header, $headers[$header]); |
|
47 | 1 | unset($headers[$header]); |
|
48 | } |
||
49 | |||
50 | 1 | return resolve($response); |
|
51 | 1 | }); |
|
52 | } |
||
53 | } |
||
54 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"]
, you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths