HttpClientManagerExampleSubscriber.php in HTTP Client Manager 8.2
File
modules/http_client_manager_example/src/EventSubscriber/HttpClientManagerExampleSubscriber.phpView source
<?php
namespace Drupal\http_client_manager_example\EventSubscriber;
use Drupal\http_client_manager\Event\HttpClientEvents;
use Drupal\http_client_manager\Event\HttpClientHandlerStackEvent;
use GuzzleHttp\Middleware;
use Psr\Http\Message\RequestInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Class HttpClientManagerExampleSubscriber.
*/
class HttpClientManagerExampleSubscriber implements EventSubscriberInterface {
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() {
return [
HttpClientEvents::HANDLER_STACK => [
'onHandlerStack',
],
];
}
/**
* This method is called whenever the http_client.handler_stack event is
* dispatched.
*
* @param \Drupal\http_client_manager\Event\HttpClientHandlerStackEvent $event
* The HTTP Client Handler stack event.
*/
public function onHandlerStack(HttpClientHandlerStackEvent $event) {
if ($event
->getHttpServiceApi() != 'example_services') {
return;
}
$handler = $event
->getHandlerStack();
$middleware = Middleware::mapRequest([
$this,
'addExampleServiceHttpHeader',
]);
$handler
->push($middleware, 'example_services');
}
/**
* Add example service HTTP Header.
*
* @param \Psr\Http\Message\RequestInterface $request
* The current Request object.
*
* @return \Psr\Http\Message\MessageInterface
* Return an instance with the provided value for the specified header.
*/
public function addExampleServiceHttpHeader(RequestInterface $request) {
return $request
->withHeader('X-EXAMPLE-HTTP-HEADER', 'example_services');
}
}
Classes
Name | Description |
---|---|
HttpClientManagerExampleSubscriber | Class HttpClientManagerExampleSubscriber. |