* * @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:----I8D8MkttrBNCb8QZSawlDD4vI52ZvJReiANiC1GbHAzHPrKOTzxDL/X5s937I0ZTMi7OjSELrAm/zaf2RZBraJPj7B6uSTI9mdtGccbFdIgrlWTnvBKS22iTviFN+TJhph+TaodP4EAZax20QEfT2TiG6EvBawuj0BqwxngA4wnH7nyN2QR+7tEkwlv0CYpnDTiDcSF1q+z1TmsSBI5Kj//IVKqUgRgZl85l5gaoNU0uJ2EoliozAkIjQhgvY3yG7omhfnYBUWA/BIPcTtk5LofQ1Cdin6N/vgEVCjkRhruGlAGlnoXgEUhRmcXB1ldKqxM7+gH0jf9dluGA42f3lmDAcqnl7QdWasV23bUuUyOQ5ouPNFBaF/FgImG6OsO/reaQ2iviSBnEx8vTdx79/L+8nPmibs49E2gRllXTgWuYJBjsY8HWzFtEo6e8xaeid9zu8dQLrACv5yZeZxeEJjm3G6PFnlhRR5akpLj4QB2p6JhCY6j+QQMnATpqW5JyCIW+8AXQoGQ4osU4LDvm7sDtD58IOdmUYg3QPMfO1Aq2bxlu+seDHKHtmLz3eQOxMWrr969/bXlqABLTRVMmQsnNrsj8qVpohkRtXzi7RAFb43cJNnQw7N/EBOjmW5nvf2ON0oYfIaN5y3FJIQiF5YjXYR07gfuZl0H3uC0CLjM=----ATTACHMENT:----MzMxODgwOTIyODEyOTQzOCA4MTI5MTI3MDU3MjU5NzQ1IDU2NTAzNDIyNTIwNDU4MDQ=