Releases: bugsnag/bugsnag-php
v3.26.0
Enhancements
-
Out of memory errors will now be reported by increasing the memory limit by 5 MiB. Use the new
memoryLimitIncreaseconfiguration option to change the amount of memory, or set it tonullto disable the increase entirely.
#621 -
Add a "discard classes" configuration option that allows events to be discarded based on the exception class name or PHP error name
#622 -
Add a "redacted keys" configuration option. This is similar to
filtersbut allows both strings and regexes. String matching is exact but case-insensitive. Regex matching allows for partial and wildcard matching.
#623
Deprecations
- The
filtersconfiguration option is now deprecated asredactedKeyscan express everything that filters could and more.
v3.25.0
v2.10.1
v3.24.0
This release changes how Bugsnag detects the error suppression operator in combination with the errorReportingLevel configuration option, for PHP 8 compatibility. Bugsnag's errorReportingLevel must now be a subset of error_reporting — i.e. every error level in errorReportingLevel must also be in error_reporting
If you use the errorReportingLevel option, you may need to change your Bugsnag or PHP configuration in order to report all expected errors. See PR #611 for more details
Enhancements
- Improve the display of breadrumbs in the Bugsnag app by including milliseconds in timestamps
#612
Fixes
- Make
Configuration::shouldIgnoreErrorCodecompatible with PHP 8 by requiring theerrorReportingLeveloption to be a subset oferror_reporting
#611
v3.23.1
This release fixes several issues with Bugsnag's error handlers that caused it to affect the behaviour of shutdown functions (#475) and CLI script exit codes (#523). This does not apply if you are using the Laravel or Symfony integrations, as they use separate methods of error handling.
These bugs have been fixed and so registering Bugsnag's error handlers should not cause any change to PHP's default behaviour. Make sure that PHP's display_errors option is disabled in production environments, as exceptions and errors will now go through PHP's default handling.
Fixes
-
The previous error and exception handler will now always be called
-
Exceptions raised by the previous exception handler will now be reported
-
The default PHP exception handler will now be called, unless this is prevented by a previous exception handler
-
Avoid calling
method_existson non-objects
#603
v3.23.0
v3.22.0
Enhancements
-
Include all HTTP headers in request metadata
#588 -
The
ClientandSessionTrackernow share a single Guzzle instance
#587
Deprecations
-
Client::ENDPOINT
This is ambiguous as we have three separate endpoints
UseConfiguration::NOTIFY_ENDPOINTinstead -
HttpClient::PAYLOAD_VERSION
This is ambiguous as there is a session payload version too
UseHttpClient::NOTIFY_PAYLOAD_VERSIONinstead -
Report::PAYLOAD_VERSION
As above. This was also unused by the notifier
UseHttpClient::NOTIFY_PAYLOAD_VERSIONinstead -
SessionTracker::$SESSION_PAYLOAD_VERSION
UseHttpClient::SESSION_PAYLOAD_VERSIONinstead -
HttpClient::send
UseHttpClient::sendEventsinstead -
HttpClient::build
UseHttpClient::getEventPayloadinstead -
HttpClient::postJson
UseHttpClient::deliverEventsinstead -
Using the
base_uri/base_urlon a Guzzle instance
The base URI is ambiguous as there are three separate endpoints which could be used, therefore all Guzzle requests now use absolute URIs. We will extract thebase_uri/base_urlGuzzle option if one is set and use it as the notification endpoint URI, however this will be removed in the next major version
Set the notification endpoint manually withConfiguration::setNotifyEndpointinstead -
Calling
HttpClient::getHeaderswithout providing a payload version
This is deprecated as the version is ambiguous between the notification payload version and session payload version
Call this with the correctHttpClientpayload version constants instead -
Client::getSessionClientandConfiguration::getSessionClient
This method is dangerous to use as there is now only one Guzzle instance used across every request, so changing this client would also affect the notification client. Changes to this Guzzle client will now be ignored
Use the$guzzleparameter of theClientconstructor to customise the Guzzle client instead -
SessionData::$client
TheSessionDataclass will be passed aSessionTrackerinstead of aClientinstance in its constructor in the next major version -
SessionTrackershould be constructed with aHttpClient
TheSessionTrackerclass should now always be passed aHttpClient
In this version it will construct its ownHttpClientif one is not provided
In the next major version, this fallback will be removed and passing aHttpClientwill be mandatory
v3.21.0
v3.20.0
v3.19.0
Enhancements
-
Added a strategy pattern for the Client shutdown behaviour
#547 -
Replaced the dependency on phpdotenv with a simple "read" function that
follows the same strategy ($_ENV, $_SERVER, getenv())
#511 -
Removed the length restriction on the Breadcrumb "name" field to match the
API and allow large names to be sent.
#544
Bug Fixes
- Make session delivery obey the release stage rules used by notify
#542