HttpClientEmulator.php 716 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. declare(strict_types=1);
  3. namespace Http\Client\Common;
  4. use Psr\Http\Message\RequestInterface;
  5. use Psr\Http\Message\ResponseInterface;
  6. /**
  7. * Emulates an HTTP Client in an HTTP Async Client.
  8. *
  9. * @author Márk Sági-Kazár <mark.sagikazar@gmail.com>
  10. */
  11. trait HttpClientEmulator
  12. {
  13. /**
  14. * {@inheritdoc}
  15. *
  16. * @see HttpClient::sendRequest
  17. */
  18. public function sendRequest(RequestInterface $request): ResponseInterface
  19. {
  20. $promise = $this->sendAsyncRequest($request);
  21. return $promise->wait();
  22. }
  23. /**
  24. * {@inheritdoc}
  25. *
  26. * @see HttpAsyncClient::sendAsyncRequest
  27. */
  28. abstract public function sendAsyncRequest(RequestInterface $request);
  29. }