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 / HeaderSetPlugin.php

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

45 lines 967 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 * Set headers on the request.
13 *
14 * If the header does not exist it wil be set, if the header already exists it will be replaced.
15 *
16 * @author Soufiane Ghzal <sghzal@gmail.com>
17 */
18 final class HeaderSetPlugin implements Plugin
19 {
20 /**
21 * @var array
22 */
23 private $headers;
24
25 /**
26 * @param array $headers Hashmap of header name to header value
27 */
28 public function __construct(array $headers)
29 {
30 $this->headers = $headers;
31 }
32
33 /**
34 * {@inheritdoc}
35 */
36 public function handleRequest(RequestInterface $request, callable $next, callable $first): Promise
37 {
38 foreach ($this->headers as $header => $headerValue) {
39 $request = $request->withHeader($header, $headerValue);
40 }
41
42 return $next($request);
43 }
44 }
45