⚠️ This project is up for adoption. Get in touch if you're interested in actively maintaining 3 closely related packages., (*1)
, (*2)
Guzzle middleware to log requests to DebugBar's timeline., (*3)
, (*4)
Installation
composer require hannesvdvreken/guzzle-debugbar --dev
Usage
Just six lines of code are needed to log your requests to DebugBar's timeline., (*5)
$debugBar = new StandardDebugBar();
// or when using Laravel:
$debugBar = app('debugbar');
// Get data collector.
$timeline = $debugBar->getCollector('time');
// Wrap the timeline.
$profiler = new \GuzzleHttp\Profiling\Debugbar\Profiler($timeline);
// Add the middleware to the stack
$stack = \GuzzleHttp\HandlerStack::create();
$stack->unshift(new \GuzzleHttp\Profiling\Middleware($profiler));
// New up the client with this handler stack.
$client = new \GuzzleHttp\Client(['handler' => $stack]);
Now $client
is ready to make requests. Every request is now logged to the timeline., (*6)
Recommended: use Guzzle's Log middleware
$debugBar = new StandardDebugBar();
// or when using Laravel:
$debugBar = app('debugbar');
// PSR-3 logger:
$logger = $debugBar->getCollector('messages');
// Create a new Log middleware.
$stack->push(\GuzzleHttp\Middleware::log($logger, new \GuzzleHttp\MessageFormatter()));
// New up the client with this handler stack.
$client = new \GuzzleHttp\Client(['handler' => $stack]);
Support
Laravel
It is recommended to have my friend Barry's laravel-debugbar installed and configured. Make sure to include his and our service providers your app's providers
array:, (*7)
'providers' => [
...
Barryvdh\Debugbar\ServiceProvider::class,
GuzzleHttp\Profiling\Debugbar\Support\Laravel\ServiceProvider::class,
],
If you want to use a different DebugBar\DebugBar
instance, create a ServiceProvider that binds an
instance with the key debugbar
. For example with this register method:, (*8)
public function register()
{
$this->app->singleton('debugbar', function () {
return new \DebugBar\StandardDebugBar();
});
}
Be sure to create every client (type hint with GuzzleHttp\ClientInterface
or GuzzleHttp\Client
) via the IoC container., (*9)
FAQ:
I get one of these errors:, (*10)
'time' is not a registered collector
'exceptions' is not a registered collector
, (*11)
It means you disabled the time
collector and/or the exceptions
collector in your packages/barryvdh/laravel-debugbar/config.php
. These are enabled by default. This package depends on it, so please enable them both., (*12)
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., (*13)
Testing
To test your code before pushing, run the unit test suite., (*14)
vendor/bin/phpunit
License
MIT, (*15)