|
14 | 14 | // Capture whatever the env var was before this script ran, so we can restore it |
15 | 15 | // on shutdown. Without this, code running after PHPUnit (shutdown handlers, parent |
16 | 16 | // processes that include this file) would observe a state mutation they didn't ask |
17 | | -// for. |
| 17 | +// for. Env values are always strings, so `null` unambiguously means "wasn't set". |
18 | 18 | $originalGetenv = getenv('UPDATE_SNAPSHOTS'); |
19 | | -$originalEnv = array_key_exists('UPDATE_SNAPSHOTS', $_ENV) ? $_ENV['UPDATE_SNAPSHOTS'] : null; |
20 | | -$originalServer = array_key_exists('UPDATE_SNAPSHOTS', $_SERVER) ? $_SERVER['UPDATE_SNAPSHOTS'] : null; |
21 | | -$originalEnvWasSet = array_key_exists('UPDATE_SNAPSHOTS', $_ENV); |
22 | | -$originalServerWasSet = array_key_exists('UPDATE_SNAPSHOTS', $_SERVER); |
23 | | - |
24 | | -register_shutdown_function(static function () use ($originalGetenv, $originalEnv, $originalServer, $originalEnvWasSet, $originalServerWasSet): void { |
25 | | - if ($originalGetenv === false) { |
26 | | - putenv('UPDATE_SNAPSHOTS'); |
27 | | - } else { |
28 | | - putenv('UPDATE_SNAPSHOTS='.$originalGetenv); |
29 | | - } |
| 19 | +$originalEnv = $_ENV['UPDATE_SNAPSHOTS'] ?? null; |
| 20 | +$originalServer = $_SERVER['UPDATE_SNAPSHOTS'] ?? null; |
| 21 | + |
| 22 | +register_shutdown_function(static function () use ($originalGetenv, $originalEnv, $originalServer): void { |
| 23 | + putenv($originalGetenv === false ? 'UPDATE_SNAPSHOTS' : 'UPDATE_SNAPSHOTS='.$originalGetenv); |
| 24 | + |
| 25 | + unset($_ENV['UPDATE_SNAPSHOTS'], $_SERVER['UPDATE_SNAPSHOTS']); |
30 | 26 |
|
31 | | - if ($originalEnvWasSet) { |
| 27 | + if ($originalEnv !== null) { |
32 | 28 | $_ENV['UPDATE_SNAPSHOTS'] = $originalEnv; |
33 | | - } else { |
34 | | - unset($_ENV['UPDATE_SNAPSHOTS']); |
35 | 29 | } |
36 | 30 |
|
37 | | - if ($originalServerWasSet) { |
| 31 | + if ($originalServer !== null) { |
38 | 32 | $_SERVER['UPDATE_SNAPSHOTS'] = $originalServer; |
39 | | - } else { |
40 | | - unset($_SERVER['UPDATE_SNAPSHOTS']); |
41 | 33 | } |
42 | 34 | }); |
43 | 35 |
|
|
0 commit comments