v3.0.0
This release and the entire v3 series target PHP 8+ only. If you are using PHP 7.4 or earlier, please use the v2 series.
If you are upgrading from a v2 series release, please pay special attention to the APi changes mentioned below.
Problems? Click the "Join Release Discussion" button below and leave your question.
Added
- Support for PHP 8.
- Type signatures and strict type enforcement.
- Less member variable boilerplate via constructor property promotion.
- Type signatures for Serialized handlers.
- Compatibility with XDebug 3.
- Docker containers for quick interaction: try
composer docker-build
andcomposer docker-run
.
Removed
- Support for PHP 7 and earlier.
- Spurious use of
Monolog\StreamHandler
. $isUncaught
parameter onRollbar::log
; replaced withRollbar::logUncaught
.- Use of
call_user_func
andcall_user_func_array
internally. - Monolog 1 handler.
Fixed
- The performance test suite now runs to completion with assertions on the expected run-time performance within GitHub actions. Running these on different hardware configurations may not match the expectations, so care should be taken to match test platform specifications when reporting performance issues. A future version may provide better direction as to the required test platform specifications.
- Missing URL encoding when internally calling the Rollbar occurrences API.
- Uncaptured local variables when using the
zend.exception_ignore_args=Off
engine configuration.
Changed
- The new configuration option
scrub_safelist
replaces the deprecatedscrub_whitelist
configuration option, which is now removed. - The
check_ignore
configuration option, if defined and containing the name of an invocable function, will now catch thrown\Error
-- division by zero, parse and type errors, assertion failures, etc. Before, only thrown\Exception
would be caught. - In the event the API rejected an occurrence during a
log()
call, and no message was available, the new default message reads "message not set": before this was misspelled as "mesage not set". AgentSender::sendBatch()
no longer returns a value, as it was inconsistent with the interface. To access the return values, pass a return-by-reference variable as the third argument toAgentSender::sendBatch
.