Event Loop Versions Save

ReactPHP's core reactor event loop that libraries can use for evented I/O.

v1.5.0

6 months ago
  • Feature: Improve performance by using spl_object_id() on PHP 7.2+. (#267 by @samsonasik)

  • Feature: Full PHP 8.3 compatibility. (#269 by @clue)

  • Update tests for ext-uv on PHP 8+ and legacy PHP. (#270 by @clue and #268 by @SimonFrings)

v1.4.0

1 year ago
  • Feature: Improve performance of Loop by avoiding unneeded method calls. (#266 by @clue)

  • Feature: Support checking EINTR constant from ext-pcntl without ext-sockets. (#265 by @clue)

  • Minor documentation improvements. (#254 by @nhedger)

  • Improve test suite, run tests on PHP 8.2 and report failed assertions. (#258 by @WyriHaximus, #264 by @clue and #251, #261 and #262 by @SimonFrings)

v1.3.0

2 years ago
  • Feature: Improve default StreamSelectLoop to report any warnings for invalid streams. (#245 by @clue)

  • Feature: Improve performance of StreamSelectLoop when no timers are scheduled. (#246 by @clue)

  • Fix: Fix periodic timer with zero interval for ExtEvLoop and legacy ExtLibevLoop. (#243 by @lucasnetau)

  • Minor documentation improvements, update PHP version references. (#240, #248 and #250 by @SimonFrings, #241 by @dbu and #249 by @clue)

  • Improve test suite and test against PHP 8.1. (#238 by @WyriHaximus and #242 by @clue)

v1.2.0

2 years ago

A major new feature release, see release announcement.

  • Feature: Introduce new concept of default loop with the new Loop class. (#226 by @WyriHaximus, #229, #231 and #232 by @clue)

    The Loop class exists as a convenient global accessor for the event loop. It provides all methods that exist on the LoopInterface as static methods and will automatically execute the loop at the end of the program:

    $timer = Loop::addPeriodicTimer(0.1, function () {
        echo 'Tick' . PHP_EOL;
    });
    
    Loop::addTimer(1.0, function () use ($timer) {
        Loop::cancelTimer($timer);
        echo 'Done' . PHP_EOL;
    });
    

    The explicit loop instructions are still valid and may still be useful in some applications, especially for a transition period towards the more concise style. The Loop::get() method can be used to get the currently active event loop instance.

    // deprecated
    $loop = React\EventLoop\Factory::create();
    
    // new
    $loop = React\EventLoop\Loop::get();
    
  • Minor documentation improvements and mark legacy extensions as deprecated. (#234 by @SimonFrings, #214 by @WyriHaximus and #233 and #235 by @nhedger)

  • Improve test suite, use GitHub actions for continuous integration (CI), update PHPUnit config and run tests on PHP 8. (#212 and #215 by @SimonFrings and #230 by @clue)

v1.1.1

4 years ago
  • Fix: Fix reporting connection refused errors with ExtUvLoop on Linux and StreamSelectLoop on Windows. (#207 and #208 by @clue)

  • Fix: Fix unsupported EventConfig and SEGFAULT on shutdown with ExtEventLoop on Windows. (#205 by @clue)

  • Fix: Prevent interval overflow for timers very far in the future with ExtUvLoop. (#196 by @PabloKowalczyk)

  • Fix: Check PCNTL functions for signal support instead of PCNTL extension with StreamSelectLoop. (#195 by @clue)

  • Add .gitattributes to exclude dev files from exports. (#201 by @reedy)

  • Improve test suite to fix testing ExtUvLoop on Travis, fix Travis CI builds, do not install libuv on legacy PHP setups, fix failing test cases due to inaccurate timers, run tests on Windows via Travis CI and run tests on PHP 7.4 and simplify test matrix and test setup. (#197 by @WyriHaximus and #202, #203, #204 and #209 by @clue)

v1.1.0

5 years ago
  • New UV based event loop (ext-uv). (#112 by @WyriHaximus)

  • Use high resolution timer on PHP 7.3+. (#182 by @clue)

  • Improve PCNTL signals by using async signal dispatching if available. (#179 by @CharlotteDunois)

  • Improve test suite and test suite set up. (#174 by @WyriHaximus, #181 by @clue)

  • Fix PCNTL signals edge case. (#183 by @clue)

v1.0.0

5 years ago
  • First stable LTS release, now following SemVer. We'd like to emphasize that this component is production ready and battle-tested. We plan to support all long-term support (LTS) releases for at least 24 months, so you have a rock-solid foundation to build on top of.

Contains no other changes, so it's actually fully compatible with the v0.5.3 release.

v0.5.3

5 years ago
  • Improve performance by importing global functions. (#167 by @Ocramius)

  • Improve test suite by simplifying test bootstrap by using dev autoloader. (#169 by @lcobucci)

  • Minor internal changes to improved backward compatibility with PHP 5.3. (#166 by @Donatello-za)

v0.1.0

5 years ago
  • First tagged release

v0.1.1

5 years ago
  • Version bump