danog / async-construct
Async class constructor and wakeup functions for AMPHP.
Fund package maintenance!
danog
Requires
- php: >=7.1
- amphp/amp: ^2
Requires (Dev)
- amphp/php-cs-fixer-config: dev-master
- amphp/phpunit-util: ^1.3
- phpunit/phpunit: ^7 | ^8 | ^9
- vimeo/psalm: dev-master
This package is auto-updated.
Last update: 2024-10-29 05:47:26 UTC
README
danog/asyncConstruct
provides async class constructor and wakeup functions for AMPHP.
Installation
composer require danog/async-construct
API
- Async
- Blocking
AsyncConstruct
Simply use
this trait in your class, and define a __construct_async
async method.
The trait will automatically run the async method on construction, and expose a set of APIs to wait on the result of the constructor for initialization.
init()
Will blockingly wait for execution of the async constructor, returning its return value.
initAsynchronously()
Will return a promise that, when yield
ed, will wait for and return the return value of the constructor.
inited()
Returns a boolean, indicating whether the class was initialized or not.
BlockingConstruct
Exactly like AsyncConstruct, except that the blocking init()
function will be automatically called on construction.
AsyncWakeup
Simply use
this trait in your class, and define a __wakeup_async
async method.
The trait will automatically run the async method on deserialization, and expose a set of APIs to wait on the result of the wakeup function for re-initialization.
wakeup()
Will blockingly wait for execution of the async wakeup function, returning its return value.
wakeupAsynchronously()
Will return a promise that, when yield
ed, will wait for and return the return value of the wakeup function.
wokenUp()
Returns a boolean, indicating whether the class was initialized or not.
BlockingWakeup
Exactly like AsyncWakeup, except that the blocking wakeup()
function will be automatically called on wakeup.