# Client factory
The core functionality of the EasyBugsnag package is to create a Bugsnag client instance and make it available to your application, so you can focus on notifying your errors/exceptions instead of the boilerplate Bugsnag setup. It uses a client factory to do this.
This factory implements EonX\EasyBugsnag\Interfaces\ClientFactoryInterface
which is able to create the client from
just your Bugsnag Integration API key.
However, if needed you can set your own implementations of the following additional objects used by the Bugsnag client:
HttpClient
: HTTP client used to send notifications to Bugsnag.RequestResolver
: used to resolve request information for sending to Bugsnag.ShutdownStrategy
: used for determining when to send notifications to Bugsnag.
# HTTP client
By default, the Bugsnag client uses the Guzzle HTTP client (opens new window) to send notifications to Bugsnag. You can create your
own HTTP client that implements GuzzleHttp\ClientInterface
and set the Bugsnag client to use it instead via the client
factory's setHttpClient()
method.
# Request resolver
The Bugsnag client's request resolver determines information about the request that triggered the error or exception in your application, such as the request's method and headers.
By default, the EasyBugsnag package uses a framework-specific request resolver for the Bugsnag client. Thus Symfony uses
EonX\EasyBugsnag\Bridge\Symfony\Request\SymfonyRequestResolver
and Laravel uses
EonX\EasyBugsnag\Bridge\Laravel\Request\LaravelRequestResolver
.
If required, you can create your own request resolver that implements Bugsnag\Request\ResolverInterface
and set the
Bugsnag client to use it via the client factory's setRequestResolver()
method.
# Shutdown strategy
By default, the Bugsnag client batches the sending of notifications to Bugsnag. The strategy for when to send notifications is defined by the Bugsnag client's shutdown strategy.
The EasyBugsnag package is configured to execute the Bugsnag client's shutdown strategy when triggered by the following events:
- application terminate
- console terminate
- worker running a new job
The default EasyBugsnag shutdown strategy (EonX\EasyBugsnag\Shutdown\ShutdownStrategy
) will call flush()
and
clearBreadcrumbs()
on the Bugsnag client.
You can create your own shutdown strategy that implements Bugsnag\Shutdown\ShutdownStrategyInterface
and set the
Bugsnag client to use it instead via the client factory's setShutdownStrategy()
method.