bmancone/guzzle-stopwatch-middleware

Stopwatch Middleware for Guzzle.

v1.0.2 2022-10-29 13:45 UTC

This package is auto-updated.

Last update: 2024-03-29 02:36:45 UTC


README

Author Latest Version Build Status

Installation

composer require bmancone/guzzle-stopwatch-middleware

Usage

Requires an instance of Symfony\Component\Stopwatch\Stopwatch.

use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Psr7\Request;

use Symfony\Component\Stopwatch\Stopwatch;

Use Leadz\GuzzleHttp\Stopwatch\StopwatchMiddleware;

// Create the default HandlerStack
$stack = HandlerStack::create();

// Create the middleware
$middleware = new StopwatchMiddleware(new Stopwatch());

// Push the Middleware to the stack
$stack->push($middleware);

// Create the client
$client = new Client([
    'handler' => $stack
]);

// Send the request
$request = new Request('GET', 'https://en.wikipedia.org/wiki/Main_Page');
$response = $client->send($request);

// Get the duration of the request
printf('Request to [%s] took [%dms]', (string)$request->getUri(), $response->getHeaderLine('X-Duration'));

Symfony Profiler

If you are using Symfony, simply inject debug.stopwatch (or use autowiring), this will add events to the profiler timeline.