keerill / guzzle-clockwork
A Guzzle middleware that logs requests with Clockwork
Requires
- php: >=8.1
- hannesvdvreken/guzzle-profiler: ^2.0
- illuminate/contracts: ^10.0
- itsgoingd/clockwork: ^5.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- orchestra/testbench: ^v8.8
- pestphp/pest: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Guzzle middleware for logging requests clockwork's timeline so you can view the timeline in your browser's developer tools.
Usage
Composer install
composer require keerill/guzzle-clockwork
// 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\GuzzleClockworkServiceProvider::class, ],
Be sure to create every client (type hint with GuzzleHttp\ClientInterface or GuzzleHttp\Client) via the IoC container.
Contributing
Feel free to make a pull request. Please try to be as
PSR-2
compliant as possible. Fix Code Style quickly by running composer format. 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.
composer test
