clue/block-react
Lightweight bridge to run ReactPHP’s event loop in a blocking way. Lets you wait for promises and async operations from synchronous PHP code, ideal for CLI tools and scripts that need occasional async I/O without restructuring your whole app.
Feature: Simplify usage by supporting new default loop. (#60 by @clue)
// old (still supported)
Clue\React\Block\await($promise, $loop);
Clue\React\Block\awaitAny($promises, $loop);
Clue\React\Block\awaitAll($promises, $loop);
// new (using default loop)
Clue\React\Block\await($promise);
Clue\React\Block\awaitAny($promises);
Clue\React\Block\awaitAll($promises);
Feature: Added support for upcoming react/promise v3. (#61 by @davidcole1340 and @SimonFrings)
Improve error reporting by appending previous message for Throwables.
(#57 by @clue)
Deprecate $timeout argument for await*() functions.
(#59 by @clue)
// deprecated
Clue\React\Block\await($promise, $loop, $timeout);
Clue\React\Block\awaitAny($promises, $loop, $timeout);
Clue\React\Block\awaitAll($promises, $loop, $timeout);
// still supported
Clue\React\Block\await($promise, $loop);
Clue\React\Block\awaitAny($promises, $loop);
Clue\React\Block\awaitAll($promises, $loop);
Improve API documentation. (#58 and #63 by @clue and #55 by @PaulRotmann)
Improve test suite and use GitHub actions for continuous integration (CI). (#54 by @SimonFrings)
Improve API documentation, update README and add examples. (#45 by @clue and #51 by @SimonFrings)
Improve test suite and add .gitattributes to exclude dev files from exports.
Prepare PHP 8 support, update to PHPUnit 9, run tests on PHP 7.4 and simplify test matrix.
(#46, #47 and #50 by @SimonFrings)
Feature: Improve memory consumption by cleaning up garbage references. (#35 by @clue)
Fix minor documentation typos. (#28 by @seregazhuk)
Improve test suite by locking Travis distro so new defaults will not break the build, support PHPUnit 6 and update Travis config to also test against PHP 7.2. (#30 by @clue, #31 by @carusogabriel and #32 by @andreybolonin)
Update project homepage. (#34 by @clue)
Feature / Fix: Forward compatibility with future EventLoop v1.0 and v0.5 and cap small timeout values for legacy EventLoop (#26 by @clue)
// now works across all versions
Block\sleep(0.000001, $loop);
Feature / Fix: Throw UnexpectedValueException if Promise gets rejected with non-Exception
(#27 by @clue)
// now throws an UnexceptedValueException
Block\await(Promise\reject(false), $loop);
First class support for legacy PHP 5.3 through PHP 7.1 and HHVM (#24 and #25 by @clue)
Improve testsuite by adding PHPUnit to require-dev and Fix HHVM build for now again and ignore future HHVM build errors (#23 and #24 by @clue)
Contains no other changes, so it's actually fully compatible with the v0.3.0 release.
BC break: Use functional API approach instead of pseudo-OOP. All existing methods are now exposed as simple functions. (#13)
// old
$blocker = new Block\Blocker($loop);
$result = $blocker->await($promise);
// new
$result = Block\await($promise, $loop);
run() the loop instead of making it tick().
This results in significant performance improvements (less resource utilization) by avoiding busy waiting
(#1)How can I help you explore Laravel packages today?