internal / promise
A lightweight implementation of CommonJS Promises/A for PHP
Installs: 29 172
Dependents: 1
Suggesters: 0
Security: 0
Stars: 35
Watchers: 1
Forks: 1
Open Issues: 0
pkg:composer/internal/promise
Requires
- php: >=8.1.0
 
Requires (Dev)
- phpstan/phpstan: 1.12.28
 - phpunit/phpunit: ^10.5
 - rector/rector: ^1.2
 - spiral/code-style: ^2.2
 - ta-tikoma/phpunit-architecture-test: ^0.8.5
 
Replaces
- react/promise: ^3.0
 
README
A lightweight implementation of CommonJS Promises/A for PHP.
Note
This is a fork of reactphp/promise.
Improvements over original reactphp/promise:
- PHP 8.1+ compatibility
 declare(strict_types=1);in all PHP files@yieldannotation in the PromiseInterface
Version 3.x specific:
- Replaces 
react/promisev3 in Composer - Rejection handler is reusable now. 
error_log()is still used by default. - Removed 
exit(255)from RejectionPromise. 
Version 2.x specific:
- Replaces 
react/promisev2 in Composer - Enhanced type annotations
 
Install
composer require internal/promise
Tests
To run the test suite, go to the project root and run:
composer test
On top of this, we use PHPStan on max level to ensure type safety across the project:
composer stan
Credits
This fork is based on reactphp/promise, which is a port of when.js by Brian Cavalier.
Also, large parts of the documentation have been ported from the when.js Wiki and the API docs.