Integrate BugSnag with other PHP apps, running older versions of PHP (5.2+).
This integration supports older versions of PHP (5.2+). For newer applications, see the updated PHP integration guide.
If you are using PHP 5.3+, then add bugsnag/bugsnag
to your composer.json
as follows:
$ composer require "bugsnag/bugsnag:^2.9"
If you are using PHP 5.2+, then instead of using composer, you can download bugsnag.phar
from the latest release of the 2.9 series to your PHP project, and include it in your application:
require_once "/path/to/bugsnag.phar";
Download and extract the latest BugSnag source code to your PHP project, and incude it in your application using our provided autoloader:
require_once "/path/to/Bugsnag/Autoload.php";
Create a BugSnag client object with your Integration API Key:
$bugsnag = new Bugsnag_Client('YOUR-API-KEY-HERE');
You can find this key immediately after creating a new project from your BugSnag dashboard, or later on your project’s settings page.
If you’d like to configure BugSnag further, check out the configuration options reference.
You can ensure that all unhandled errors and exceptions are reported to BugSnag by attaching our error_handler
and exception_handler
methods as follows:
set_error_handler(array($bugsnag, 'errorHandler'));
set_exception_handler(array($bugsnag, 'exceptionHandler'));
At this point, BugSnag should be installed and configured, and any unhandled exceptions will be automatically detected and should appear in your BugSnag dashboard.
Reporting handled exceptions can be accomplished as follows:
try {
// Some potentially crashy code
} catch (Exception $e) {
$bugsnag->notifyException($e);
}
When reporting handled exceptions, it’s often helpful to send us custom diagnostic data or to adjust the severity of particular errors. For more information, see reporting handled errors.
BugSnag will automatically capture the following data for every exception:
It is often helpful to send us additional application-specific diagnostic data. This can be accomplished as follows:
$bugsnag->setBeforeNotifyFunction(function ($error) {
$error->setMetaData([
'account' => [
'name' => 'Acme Co.',
'paying_customer' => true,
]
]);
});
For more information, see the customizing error reports reference.
In order to correlate errors with customer reports, or to see a list of users who experienced each error, it is helpful to capture and display user information on your BugSnag dashboard.
You can set this information as follows:
$bugsnag->setUser([
'id' => '123456',
'name' => 'Leeroy Jenkins',
'email' => 'leeeeroy@jenkins.com',
]);
You can also set this on the error object from the callback function from v2.9 and upwards:
$bugsnag->setBeforeNotifyFunction(function ($error) {
$error->setUser([
'id' => '123456',
'name' => 'Leeroy Jenkins',
'email' => 'leeeeroy@jenkins.com',
]);
});
For more information, see configuration options.
By sending your source revision or application version to us when you deploy a new version of your app, you’ll be able to see which deploy each error was introduced in, or seen in.
See our Build API guide for more details.
bugsnag-php
, the open-source libraries powering BugSnag for PHP, on GitHub