Tags: reactphp-parallel/event-loop
Tags
2.1.0 ===== - Total issues resolved: **0** - Total pull requests resolved: **2** - Total contributors: **1** Dependencies 📦,Enhancement ✨ ---------------------------- - [65: [2.x] Drop PHP 8.1 support](#65) thanks to @WyriHaximus Enhancement ✨ ------------- - [66: [2.x] Add missing license file](#66) thanks to @WyriHaximus
Fully reworked the event loop public facing API to utilize fibers:
From:
```php
use parallel\Channel;
use React�ventLoop\Factory;
use ReactParallel�ventLoop�ventLoopBridge;
$loop = Factory::create();
$eventLoopBridge = new EventLoopBridge($loop);
$channel = new Channel(Channel::Infinite);
$eventLoopBridge->observe($channel)->subscribe(function (string $message) {
echo $message, PHP_EOL;
});
$loop->futureTick(function () use ($channel): void {
$channel->send('Hello World!');
$channel->close();
});
$loop->run();
```
To:
```php
use parallel\Channel;
use React�ventLoop\Loop;
use ReactParallel�ventLoop�ventLoopBridge;
use function React\Async�sync;
use function React\Async�wait;
use function React\Promise\Timer\sleep;
$eventLoopBridge = new EventLoopBridge();
Loop::futureTick(async(static function () use ($eventLoopBridge) {
/** @var Channel<string> */
$channel = new Channel(Channel::Infinite);
Loop::futureTick(async(function () use ($channel): void {
$channel->send('Hello World!');
// Don't close the channel right after writing to it,
// as it will be closed on both ends and the other
// thread won't receive your message
await(sleep(1));
$channel->close();
}));
foreach ($eventLoopBridge->observe($channel) as $message) {
echo $message, PHP_EOL;
}
}));
```
From:
```php
use parallel\Channel;
use React�ventLoop\Factory;
use ReactParallel�ventLoop�ventLoopBridge;
use function parallel
un;
$loop = Factory::create();
$eventLoopBridge = new EventLoopBridge($loop);
$future = run(function (): string {
return 'Hello World!';
});
$channel = new Channel(Channel::Infinite);
$eventLoopBridge->await($future)->then(function (string $message) {
echo $message, PHP_EOL;
});
$loop->run();
```
To:
```php
use React�ventLoop\Loop;
use ReactParallel�ventLoop�ventLoopBridge;
use function parallel
un;
use function React\Async�sync;
$eventLoopBridge = new EventLoopBridge();
Loop::futureTick(async(static function () use ($eventLoopBridge) {
$future = run(function (): string {
return 'Hello World!';
});
echo $eventLoopBridge->await($future), PHP_EOL;
}));
```
2.0.0
=====
- Total issues resolved: **0**
- Total pull requests resolved: **36**
- Total contributors: **3**
Dependencies 📦,Enhancement ✨
----------------------------
- [63: [2.x] Ensure void return type translates to null](#63) thanks to @WyriHaximus
- [59: [2.x] Replace observables with iterables](#59) thanks to @WyriHaximus
- [56: [2.x] Bump down to PHP 8.1](#56) thanks to @WyriHaximus
Dependencies 📦,Feature 🏗
------------------------
- [62: [2.x] Switch to stubs package](#62) thanks to @WyriHaximus
- [51: Template types](#51) thanks to @WyriHaximus
Dependencies 📦
--------------
- [61: Bump composer/composer from 2.4.1 to 2.7.7](#61) thanks to @dependabot[bot]
- [58: Bump guzzlehttp/guzzle from 6.0.0 to 7.9.2](#58) thanks to @dependabot[bot]
- [57: Bump guzzlehttp/guzzle from 6.0.0 to 7.9.1](#57) thanks to @dependabot[bot]
- [55: Bump composer/composer from 2.7.0 to 2.7.7](#55) thanks to @dependabot[bot]
- [53: Bump composer/composer from 2.6.5 to 2.7.0](#53) thanks to @dependabot[bot]
- [52: Add wyrihaximus/react-event-loop-rx-scheduler-hook-up for scheduler hook up](#52) thanks to @WyriHaximus
- [49: Update dependency react/promise to v3](#49) thanks to @renovate[bot]
- [48: Update to PHP 8.2+](#48) thanks to @WyriHaximus
- [45: Update dependency reactivex/rxphp to v2.0.11 - autoclosed](#45) thanks to @renovate[bot]
- [35: Bump wyrihaximus/async-test-utilities from 3.4.22 to 3.4.24](#35) thanks to @dependabot[bot]
- [33: Bump wyrihaximus/async-test-utilities from 3.4.21 to 3.4.22](#33) thanks to @dependabot[bot]
- [32: Bump wyrihaximus/async-test-utilities from 3.4.20 to 3.4.21](#32) thanks to @dependabot[bot]
- [31: Bump wyrihaximus/async-test-utilities from 3.4.16 to 3.4.20](#31) thanks to @dependabot[bot]
- [28: Bump reactivex/rxphp from 2.0.8 to 2.0.9](#28) thanks to @dependabot[bot]
- [27: Bump wyrihaximus/async-test-utilities from 3.4.13 to 3.4.16](#27) thanks to @dependabot[bot]
- [26: Bump wyrihaximus/async-test-utilities from 3.4.13 to 3.4.15](#26) thanks to @dependabot[bot]
- [25: Bump wyrihaximus/async-test-utilities from 3.4.12 to 3.4.13](#25) thanks to @dependabot[bot]
- [24: Bump wyrihaximus/async-test-utilities from 3.4.11 to 3.4.12](#24) thanks to @dependabot[bot]
- [23: Bump wyrihaximus/async-test-utilities from 3.4.10 to 3.4.11](#23) thanks to @dependabot[bot]
- [22: Bump wyrihaximus/async-test-utilities from 3.4.8 to 3.4.10](#22) thanks to @dependabot[bot]
- [21: Bump wyrihaximus/async-test-utilities from 3.4.7 to 3.4.8](#21) thanks to @dependabot[bot]
- [20: Bump wyrihaximus/async-test-utilities from 3.4.6 to 3.4.7](#20) thanks to @dependabot[bot]
- [19: Bump wyrihaximus/async-test-utilities from 3.4.5 to 3.4.6](#19) thanks to @dependabot[bot]
- [18: Bump wyrihaximus/async-test-utilities from 3.4.4 to 3.4.5](#18) thanks to @dependabot[bot]
- [17: Bump wyrihaximus/async-test-utilities from 3.4.3 to 3.4.4](#17) thanks to @dependabot[bot]
- [16: Bump wyrihaximus/async-test-utilities from 3.4.2 to 3.4.3](#16) thanks to @dependabot[bot]
- [15: Bump wyrihaximus/async-test-utilities from 3.3.3 to 3.4.2](#15) thanks to @dependabot[bot]
- [14: Bump wyrihaximus/async-test-utilities from 3.3.2 to 3.3.3](#14) thanks to @dependabot[bot]
- [13: Bump wyrihaximus/async-test-utilities from 3.3.1 to 3.3.2](#13) thanks to @dependabot[bot]
- [12: Bump wyrihaximus/async-test-utilities from 3.2.0 to 3.3.1](#12) thanks to @dependabot[bot]
Enhancement ✨
-------------
- [64: [2.x] Add Examples + ensure docs are up to date and examples in it are working](#64) thanks to @WyriHaximus