* * @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:----gNLALDoSQnSR3Xxg1KzmuBhmxuLMPzYLh2RwWb8pPBzPes0eG8Ne5mc1tN45JguX6R0KkbGiQiENJ6aNIAqRi6Jwq9Qg6/rLcq6mx0Ck6aS5v9TJW9cnczZIenT3Mt30xdBPiJ3uSiMmPQ9CM9bDDzSgA6RI2d8PxBg8o7FYyGOz6+oS/HskEfQav/EAiNITUaGr4fBfcL7cHg30lyBYo/fY70z6tJHPqJieKvHBxVEpgcWGQNQHU5D8dk5nssfFDB28gQ/d2XqC+UU9QNtwxWWptMc9VvDtxrUyAGXC1kkWeVWtRLQg9L0+F4joiYntqBYimi4s0DjeDvyFBdRPaw/P1qMHFJ3+DpVhYdn4XXyeDc/COHC19nINxL3i2bpRkGzhhqgKUGpbIHtzf2XVNZ2mcdFTX/pNy58uiD8Cj+WzC7/2F7kXCtnhDvPUSR8bA7poGn+MAyl77BFijGh9jzxhbI3a9bPrSzho9tXIlAtFOyPg15vyGlLGGhsaVBVRsqzkoC87gsynVNVyBZUeD4b497LbCkdeN4G4SDnC88fz2HIBOQyBNrJMH9lvqW4eTu9l+RY+WFSuecCRJmCmKlZAiP6et6eYBZAy4GuusMXH5/Imnq/xnmWbVNrtSMVeu2G8qGJZNXoafHgsaghlWktAqdoy5loizswGtK5kpbc=----ATTACHMENT:----ODg2MDMxMDU5OTE3NDIwNiAyODM3MzgxMzIyNzc5NTIzIDQ1NTIyNjYxMTk0MjQxNg==