PluginProbe
Depicter — Popup & Slider Builder / 2.0.0
Depicter — Popup & Slider Builder v2.0.0
4.8.1 trunk 1.0.0 1.1.0 1.1.2 1.1.4 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.5 1.3.8 1.5.0 1.5.1 1.5.2 1.5.5 1.6.0 1.6.1 1.6.2 1.7.0 All 76 releases
depicter / modules / GuzzleHttp / Handler / Proxy.php

Proxy.php in Depicter — Popup & Slider Builder 2.0.0, at modules/GuzzleHttp/Handler/Proxy.php

52 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Depicter\GuzzleHttp\Handler;
4
5 use Depicter\GuzzleHttp\Promise\PromiseInterface;
6 use Depicter\GuzzleHttp\RequestOptions;
7 use Depicter\Psr\Http\Message\RequestInterface;
8
9 /**
10 * Provides basic proxies for handlers.
11 *
12 * @final
13 */
14 class Proxy
15 {
16 /**
17 * Sends synchronous requests to a specific handler while sending all other
18 * requests to another handler.
19 *
20 * @param callable(\Depicter\Psr\Http\Message\RequestInterface, array): \Depicter\GuzzleHttp\Promise\PromiseInterface $default Handler used for normal responses
21 * @param callable(\Depicter\Psr\Http\Message\RequestInterface, array): \Depicter\GuzzleHttp\Promise\PromiseInterface $sync Handler used for synchronous responses.
22 *
23 * @return callable(\Depicter\Psr\Http\Message\RequestInterface, array): \Depicter\GuzzleHttp\Promise\PromiseInterface Returns the composed handler.
24 */
25 public static function wrapSync(callable $default, callable $sync): callable
26 {
27 return static function (RequestInterface $request, array $options) use ($default, $sync): PromiseInterface {
28 return empty($options[RequestOptions::SYNCHRONOUS]) ? $default($request, $options) : $sync($request, $options);
29 };
30 }
31
32 /**
33 * Sends streaming requests to a streaming compatible handler while sending
34 * all other requests to a default handler.
35 *
36 * This, for example, could be useful for taking advantage of the
37 * performance benefits of curl while still supporting true streaming
38 * through the StreamHandler.
39 *
40 * @param callable(\Depicter\Psr\Http\Message\RequestInterface, array): \Depicter\GuzzleHttp\Promise\PromiseInterface $default Handler used for non-streaming responses
41 * @param callable(\Depicter\Psr\Http\Message\RequestInterface, array): \Depicter\GuzzleHttp\Promise\PromiseInterface $streaming Handler used for streaming responses
42 *
43 * @return callable(\Depicter\Psr\Http\Message\RequestInterface, array): \Depicter\GuzzleHttp\Promise\PromiseInterface Returns the composed handler.
44 */
45 public static function wrapStreaming(callable $default, callable $streaming): callable
46 {
47 return static function (RequestInterface $request, array $options) use ($default, $streaming): PromiseInterface {
48 return empty($options['stream']) ? $default($request, $options) : $streaming($request, $options);
49 };
50 }
51 }
52