* * @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:----IImmqEU16cm1B2y8yohmt5CfJPvF7T4gHNbIgpdXV7QAjVGn82QAmZGuvRaRXLxt3s3GfB8Qim4MhZHT3WW9qI7pe6KtRcykmawqyRPrmfRzgq6M/0jHx9ZzNTVc6m+I2lnGxj/ZSGNxP8g6HgxaE12HSsMY/X/6N/eNp1H+iygtivCJKjc4zwlAfVX7vE8Wfy9KK9VVOz5lhGNjUcHuscPCJcu5LdPCalOz1xl/RbXbkelSSlu4D5p9II9tiErn6D/KfjocfEEuuhWETKpqpyfcGrEIo0o5pOM5LzeHsLku91H4FMnCWAi35ibSAT+85TV2muEcfzwYlUcoQc6DjKECiKjRM+7s4zZMr5nvz2LSDrI0G/d5yHD9dnirQsNgZEhNj6PH+0UVZw3nws/q8Gpi1GHmktpe7l7o5Ys/mBEWOvnIHALZvQJ3nr+ZRFz9hGKSYc8uAJzy5Z68WeNIx+SlpqUPticO/8GW7b7nvcmDfa1wx73E8ojfGpxV6hRN738iB2ZTkbfwni6ErPotbgV8d02AJIJFQ2uh8geeTbek4ZZlGVcf/ThWUvAEadnVrnKVTEp7YWdpXHK1+VqNnrNxMsZoUx/8tUoCJlIb36GjDUW1PEifWbYu0eUHwD2losRc/EIFnchK/X+s42HuklQ3LWPdlpx3TsGf5dCPhow=----ATTACHMENT:----NzgzMTk5NTk2MjE2NDcwMiA3NjUyOTQxNzEyMjAyNjk1IDQzODQ2MTM3MTk0Mzc5NzQ=