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

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

34 lines 1.1 KB
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;
6
7 use Http\Promise\Promise;
8 use Psr\Http\Message\RequestInterface;
9
10 /**
11 * A plugin is a middleware to transform the request and/or the response.
12 *
13 * The plugin can:
14 * - break the chain and return a response
15 * - dispatch the request to the next middleware
16 * - restart the request
17 *
18 * @author Joel Wurtz <joel.wurtz@gmail.com>
19 */
20 interface Plugin
21 {
22 /**
23 * Handle the request and return the response coming from the next callable.
24 *
25 * @see http://docs.php-http.org/en/latest/plugins/build-your-own.html
26 *
27 * @param callable(RequestInterface): Promise $next Next middleware in the chain, the request is passed as the first argument
28 * @param callable(RequestInterface): Promise $first First middleware in the chain, used to to restart a request
29 *
30 * @return Promise Resolves a PSR-7 Response or fails with an Http\Client\Exception (The same as HttpAsyncClient)
31 */
32 public function handleRequest(RequestInterface $request, callable $next, callable $first): Promise;
33 }
34