vendor/ezimuel/ringphp/src/Client/Middleware.php line 30

Open in your IDE?
  1. <?php
  2. namespace GuzzleHttp\Ring\Client;
  3. /**
  4.  * Provides basic middleware wrappers.
  5.  *
  6.  * If a middleware is more complex than a few lines of code, then it should
  7.  * be implemented in a class rather than a static method.
  8.  */
  9. class Middleware
  10. {
  11.     /**
  12.      * Sends future requests to a future compatible handler while sending all
  13.      * other requests to a default handler.
  14.      *
  15.      * When the "future" option is not provided on a request, any future responses
  16.      * are automatically converted to synchronous responses and block.
  17.      *
  18.      * @param callable $default Handler used for non-streaming responses
  19.      * @param callable $future  Handler used for future responses
  20.      *
  21.      * @return callable Returns the composed handler.
  22.      */
  23.     public static function wrapFuture(
  24.         callable $default,
  25.         callable $future
  26.     ) {
  27.         return function (array $request) use ($default$future) {
  28.             return empty($request['client']['future'])
  29.                 ? $default($request)
  30.                 : $future($request);
  31.         };
  32.     }
  33.     /**
  34.      * Sends streaming requests to a streaming compatible handler while sendin
  35.      * all other requests to a default handler.
  36.      *
  37.      * This, for example, could be useful for taking advantage of the
  38.      * performance benefits of curl while still supporting true streaming
  39.      * through the StreamHandler.
  40.      *
  41.      * @param callable $default   Handler used for non-streaming responses
  42.      * @param callable $streaming Handler used for streaming responses
  43.      *
  44.      * @return callable Returns the composed handler.
  45.      */
  46.     public static function wrapStreaming(
  47.         callable $default,
  48.         callable $streaming
  49.     ) {
  50.         return function (array $request) use ($default$streaming) {
  51.             return empty($request['client']['stream'])
  52.                 ? $default($request)
  53.                 : $streaming($request);
  54.         };
  55.     }
  56. }