PluginProbe
DecaLog / 4.4.0
DecaLog v4.4.0
3.0.2 3.1.0 3.10.0 3.2.0 3.3.0 3.4.0 3.4.1 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.6.3 3.7.0 3.7.1 3.8.0 3.9.0 3.9.1 4.0.0 4.1.0 4.2.0 4.3.0 4.3.1 4.4.0 4.5.0 All 75 releases
decalog / includes / libraries / http / client-common / Plugin / HeaderRemovePlugin.php

HeaderRemovePlugin.php in DecaLog 4.4.0, at includes/libraries/http/client-common/Plugin/HeaderRemovePlugin.php

45 lines 929 B
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Http\Client\Common\Plugin;
6
7 use Http\Client\Common\Plugin;
8 use Http\Promise\Promise;
9 use Psr\Http\Message\RequestInterface;
10
11 /**
12 * Removes headers from the request.
13 *
14 * @author Soufiane Ghzal <sghzal@gmail.com>
15 */
16 final class HeaderRemovePlugin implements Plugin
17 {
18 /**
19 * @var array
20 */
21 private $headers = [];
22
23 /**
24 * @param array $headers List of header names to remove from the request
25 */
26 public function __construct(array $headers)
27 {
28 $this->headers = $headers;
29 }
30
31 /**
32 * {@inheritdoc}
33 */
34 public function handleRequest(RequestInterface $request, callable $next, callable $first): Promise
35 {
36 foreach ($this->headers as $header) {
37 if ($request->hasHeader($header)) {
38 $request = $request->withoutHeader($header);
39 }
40 }
41
42 return $next($request);
43 }
44 }
45