hannesvdvreken/guzzle-clockwork

A Guzzle middleware that logs requests with Clockwork

4.0.0-RC1 2021-09-20 15:01 UTC

This package is auto-updated.

Last update: 2024-03-01 11:23:55 UTC


README

⚠️ This project is up for adoption. Get in touch if you're interested in actively maintaining 3 closely related packages.

Build Status Latest Stable Version Code Quality Code Coverage Total Downloads License

Guzzle middleware for logging requests clockwork's timeline so you can view the timeline in your browser's developer tools.

Developer tools timeline

Developer tools logs

Usage

// First you need a Clockwork object
$clockwork = \Clockwork\Support\Vanilla\Clockwork::init();

// Create the Guzzle middleware
$middleware = new \GuzzleHttp\Profiling\Middleware(
    new \GuzzleHttp\Profiling\Clockwork\Profiler($clockwork->getClockwork()->timeline())
);

// Then you need to add it to the Guzzle HandlerStack
$stack = \GuzzleHttp\HandlerStack::create();

$stack->unshift($middleware);

$client = new \GuzzleHttp\Client(['handler' => $stack]);

$client->get('https://httpbin.org/status/418');

Depending on your integration of Clockwork, make sure that you call $clockwork->requestProcessed(); before you output your page.

Laravel

If you are using Laravel, use the included service providers to add the subscriber to every Guzzle Client.

'providers' => [
    ...
    \Clockwork\Support\Laravel\ClockworkServiceProvider::class,
    \GuzzleHttp\Profiling\Clockwork\Support\Laravel\ServiceProvider::class,
],

Be sure to create every client (type hint with GuzzleHttp\ClientInterface or GuzzleHttp\Client) via the IoC container.

Guzzle v4 and v5

Versions 0.2.0 and up until 1.0.0 (exclusively) are all compatible with Guzzle v4 and v5. To develop for these versions of Guzzle, use the guzzle4-5 branch.

Use

Guzzle v3

If you want to continue to work with the old Guzzle v3 (Guzzle\Http\Client instead of GuzzleHttp\Client) ClockworkPlugin then you might want to install the 0.1.* releases. Pull request with Guzzle v3 compatibility should be made against the guzzle3 branch. Install the latest guzzle v3 compatible version with 0.1.* or dev-guzzle3.

Contributing

Feel free to make a pull request. Please try to be as PSR-2 compliant as possible. Fix Code Style quickly by running vendor/bin/php-cs-fixer fix. Give a good description of what is supposed to be added/changed/removed/fixed.

Testing

To test your code before pushing, run the unit test suite.

vendor/bin/phpunit

License

MIT