Guzzle middleware for logging requests clockwork's timeline so you can view the timeline in your browser's developer tools.
// 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.
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.
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
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
.
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.
To test your code before pushing, run the unit test suite.
vendor/bin/phpunit