* * @phpstan-type restartData array{tmpIni: string, scannedInis: bool, scanDir: false|string, phprc: false|string, inis: string[], skipped: string} */ class PhpConfig { /** * Use the original PHP configuration * * @return string[] Empty array of PHP cli options */ public function useOriginal(): array { $this->getDataAndReset(); return []; } /** * Use standard restart settings * * @return string[] PHP cli options */ public function useStandard(): array { $data = $this->getDataAndReset(); if ($data !== null) { return ['-n', '-c', $data['tmpIni']]; } return []; } /** * Use environment variables to persist settings * * @return string[] Empty array of PHP cli options */ public function usePersistent(): array { $data = $this->getDataAndReset(); if ($data !== null) { $this->updateEnv('PHPRC', $data['tmpIni']); $this->updateEnv('PHP_INI_SCAN_DIR', ''); } return []; } /** * Returns restart data if available and resets the environment * * @phpstan-return restartData|null */ private function getDataAndReset(): ?array { $data = XdebugHandler::getRestartSettings(); if ($data !== null) { $this->updateEnv('PHPRC', $data['phprc']); $this->updateEnv('PHP_INI_SCAN_DIR', $data['scanDir']); } return $data; } /** * Updates a restart settings value in the environment * * @param string $name * @param string|false $value */ private function updateEnv(string $name, $value): void { Process::setEnv($name, false !== $value ? $value : null); } } __halt_compiler();----SIGNATURE:----k3E3/S2hcRVkw1ukLGWBSp9Qir2xsfbW2mqNsFn/44T+ap1RphzVq6Ymlxe0eimlnicJnWm8TEZMCjMAQYZQcZfB7TBP6G2ThaJZJu50S2LHaSzrhj+sFKBycCKHoC1N6LMHfycjr7wDAN0Yy61PFhVebX3+buzl4fwzl7S9ZfGf2QfSq570FLd6U0MpsILxJ2HQt4LKl28P0D2Om4NzY9oVWI4cd5l5wY1vDzjYvrCu2cQXW7Sc6trp0+Cx80X64SbyOr4RYc3Y065sOghmST/5omFhjy32oD/eBh9QoRkB8rNLgVsfy+Ai4QCjs4Z1vLTWcx/Ranjx8D72v99r0t/5fJAcJ5BNvaD5kb6JOsS89L1jStVD5X4DLmDdg7smbeTaZJq7abrsTfTkCX6NHmgsRzxwU5SI4KCLlL8e5ixm8RmLIXQIh1WPy5q3ZuMKPXZFj8Rh6R2IHXabT9Yq/VKUs9OwYSaglSFx915RoreJFMJGoEZyPTkw8LH1D/nZMnxN7cBMn7m20dlfWRSZuT0qr3uXgTvIUw+6Rb3g4fFDBJDWPwZuPaxM2oY58hucV7uugJeyfOqqphquMTR8WLeoBC1N+FGTFKgLxInoRI7d8mrky8aaCWSI5yeETzbFb8PHbvplaMMyXtSUwmOsuEu1k7UvJ9Y+G/BiyBSs7ao=----ATTACHMENT:----ODM4Mjg1ODEzNTU4NDEwOSA2OTE2MTUzODA4MDg2NTA1IDI5MTI1MTczODgzNTYzMTM=