- Added support for PHP 8.6
- Changed the default
TReasonofFulfilledPromiseandCreate::promiseFor()tonever - Changed the default
TValueofRejectedPromiseandCreate::rejectionFor()tonever
- Fixed
EachPromiseabandoning its aggregate when the pending window drains unsettled - Fixed
EachPromiseadmitting new work after its aggregate has settled
- Added
concurrencyconfig support toUtils::all()andEach::of() - Added generic PHPDoc annotations to promise APIs and collection callbacks
- Added recursive and
concurrencyconfig support toUtils::settle() - Allowed promises to be resolved without passing a value
- Changed
Utils::inspect()to return actual rejection reasons - Changed
Utils::inspect()to prefer the settled state over late wait function exceptions - Changed late rejection callbacks to follow rejected promises
- Reject native PHP serialization of in-flight runtime objects
- Made static helper classes non-instantiable
- Require iterable inputs for promise collection helpers and
EachPromise - Iterate
IteratorAggregateinputs to collection helpers instead of treating them as a single value - Improved recursive
Utils::all()handling of dynamically-added settled values and raw values
- Dropped support for PHP 7.2 and 7.3
- Fixed recursive
Utils::all()rejecting generator inputs
- Deprecated passing non-iterable inputs to promise collection helpers and
EachPromise
- Fixed cancelling settled coroutines when no current promise remains
- Empty
EachPromiseinstances now resolve when the task queue runs withoutwait()
- Fixed
Utils::inspect()returning the internal reason array instead of theAggregateException
- PHP 8.5 support
- Revert "Allow an empty EachPromise to be resolved by running the queue"
- Allow an empty EachPromise to be resolved by running the queue
- Once settled, don't allow further rejection of additional promises
- PHP 8.4 support
- Replaced
call_user_func*with native calls
- PHP 8.3 support
- Added PHP 7 type hints
- All previously non-final non-exception classes have been marked as soft-final
- Dropped PHP < 7.2 support
- All functions in the
GuzzleHttp\Promisenamespace
- Removed remaining usage of deprecated functions
- Officially support PHP 8.2
- Revert "Call handler when waiting on fulfilled/rejected Promise"
- Fix pool memory leak when empty array of promises provided
- Call handler when waiting on fulfilled/rejected Promise
- Officially support PHP 8.1
- Fix manually settle promises generated with
Utils::task
- Fixed
each_limitskipping promises and failing
- Support for PHP 8
- Optional
$recursiveflag toall - Replaced functions by static methods
- Fix empty
eachprocessing - Fix promise handling for Iterators of non-unique keys
- Fixed
method_existscrashes on PHP 8 - Memory leak on exceptions
wait()foreign promise compatibility
- Adds support for custom task queues.
- Fixed coroutine promise memory leak.
- Update to now catch
\Throwableon PHP 7+
- Update EachPromise to prevent recurring on a iterator when advancing, as this could trigger fatal generator errors.
- Update Promise to allow recursive waiting without unwrapping exceptions.
- Update EachPromise to immediately resolve when the underlying promise iterator
is empty. Previously, such a promise would throw an exception when its
waitfunction was called.
- Conditionally require functions.php.
- Updating EachPromise to call next on the underlying promise iterator as late as possible to ensure that generators that generate new requests based on callbacks are not iterated until after callbacks are invoked.
- Initial release