Skip to content

Commit 8197ad5

Browse files
committed
feat(composer): updated react/promise to v3.2 to support PHP 8.4
fixes Elgg#14767
1 parent ab40d96 commit 8197ad5

File tree

6 files changed

+30
-29
lines changed

6 files changed

+30
-29
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"php-di/php-di": "~7.0.6",
4545
"phpfastcache/phpfastcache": "~9.2.3",
4646
"psr/log": "^2.0 || ^3.0",
47-
"react/promise": "^2.5",
47+
"react/promise": "^3.2",
4848
"roave/security-advisories": "dev-master",
4949
"robmorgan/phinx": "~0.16.0",
5050
"symfony/console": "~6.4",

composer.lock

Lines changed: 10 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

engine/classes/Elgg/Cli/UpgradeCommand.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ protected function execute(InputInterface $input, OutputInterface $output) {
6565
$upgrades = _elgg_services()->upgrades->getPendingUpgrades(false);
6666
$job = _elgg_services()->upgrades->run($upgrades);
6767

68-
$job->done(
68+
$job->then(
6969
function () {
7070
$this->notice(elgg_echo('cli:upgrade:system:upgraded'));
7171
},
@@ -99,7 +99,7 @@ function ($errors) use (&$return) {
9999
$upgrades = _elgg_services()->upgrades->getPendingUpgrades(true);
100100
$job = _elgg_services()->upgrades->run($upgrades);
101101

102-
$job->done(
102+
$job->then(
103103
function () {
104104
$this->notice(elgg_echo('cli:upgrade:async:upgraded'));
105105
},

engine/classes/Elgg/Upgrade/UpgradeController.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,18 @@ class UpgradeController {
2020
*
2121
* @param Request $request Request
2222
*
23-
* @return ResponseBuilder
23+
* @return null|ResponseBuilder
2424
* @throws InternalServerErrorException
2525
*/
26-
public function __invoke(Request $request) {
27-
26+
public function __invoke(Request $request): ?ResponseBuilder {
2827
$response = null;
2928

3029
$forward_url = $request->getParam('forward', 'admin');
3130
$forward_url = elgg_normalize_site_url($forward_url);
3231

3332
$upgrade = _elgg_services()->upgrades->run();
3433

35-
$upgrade->done(
34+
$upgrade->then(
3635
function () use (&$response, $forward_url) {
3736
$response = elgg_ok_response('', elgg_echo('upgrade:core'), $forward_url);
3837
},

engine/classes/Elgg/UpgradeService.php

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Elgg\Upgrade\Locator;
1111
use Elgg\Upgrade\Loop;
1212
use Elgg\Upgrade\Result;
13+
use React\Promise\PromiseInterface;
1314
use function React\Promise\all;
1415
use React\Promise\Deferred;
1516
use React\Promise\Promise;
@@ -67,7 +68,7 @@ protected function up(): Promise {
6768
\Elgg\Cache\EventHandlers::disable();
6869
elgg_clear_caches();
6970

70-
return $resolve();
71+
return $resolve(true);
7172
});
7273
}
7374

@@ -79,7 +80,7 @@ protected function up(): Promise {
7980
protected function down(): Promise {
8081
return new Promise(function ($resolve, $reject) {
8182
if (!$this->events->trigger('upgrade', 'system', null)) {
82-
return $reject();
83+
return $reject(false);
8384
}
8485

8586
elgg_invalidate_caches();
@@ -88,7 +89,7 @@ protected function down(): Promise {
8889

8990
$this->events->triggerAfter('upgrade', 'system', null);
9091

91-
return $resolve();
92+
return $resolve(true);
9293
});
9394
}
9495

@@ -97,9 +98,9 @@ protected function down(): Promise {
9798
*
9899
* @param \ElggUpgrade[] $upgrades Upgrades to run
99100
*
100-
* @return Promise
101+
* @return PromiseInterface
101102
*/
102-
protected function runUpgrades($upgrades): Promise {
103+
protected function runUpgrades($upgrades): PromiseInterface {
103104
$promises = [];
104105

105106
foreach ($upgrades as $upgrade) {
@@ -120,9 +121,9 @@ protected function runUpgrades($upgrades): Promise {
120121
]);
121122

122123
return $reject(new \RuntimeException($msg));
123-
} else {
124-
return $resolve($result);
125124
}
125+
126+
return $resolve($result);
126127
});
127128
}
128129

@@ -134,9 +135,9 @@ protected function runUpgrades($upgrades): Promise {
134135
*
135136
* @param \ElggUpgrade[] $upgrades Upgrades to run
136137
*
137-
* @return Promise
138+
* @return PromiseInterface
138139
*/
139-
public function run($upgrades = null): Promise {
140+
public function run($upgrades = null): PromiseInterface {
140141
// turn off time limit
141142
set_time_limit(3600);
142143

@@ -156,13 +157,13 @@ public function run($upgrades = null): Promise {
156157
$upgrades = $this->getPendingUpgrades(false);
157158
}
158159

159-
$this->up()->done(
160+
$this->up()->then(
160161
function () use ($resolve, $reject, $upgrades) {
161162
all([
162163
$this->runUpgrades($upgrades),
163-
])->done(
164+
])->finally(
164165
function () use ($resolve, $reject) {
165-
$this->down()->done(
166+
$this->down()->then(
166167
function ($result) use ($resolve) {
167168
return $resolve($result);
168169
},

engine/tests/phpunit/unit/ElggPluginUnitTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ public function testUsesBootstrapOnUpgrade() {
243243
};
244244

245245
$upgrade = _elgg_services()->upgrades->run();
246-
$upgrade->done($assert, $fail);
246+
$upgrade->then($assert, $fail);
247247

248248
$this->assertEquals(1, $assertions);
249249
}

0 commit comments

Comments
 (0)