* * @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:----Ghvz+ceyir9Q5n3qPC898huM7d0gblDPvvP9IFxDtmOUeiuyg6LD3ia78KPRY8WQT31I8hf7tmEUpz5wCRPJzUv7sbMutbHghfAO64khE8Bycv6aDQpZ2kAVcbXulkdK45wekydp3fMQ6kWYs6ft/O1lAvUMWNXo/4kUK4kKLT44/lbSno8UaH4X7Z2dBS4ry/3/CYGicSVo28NtHV6eVcxxr+8tWPwgsrUiobG1x5Wf0Bnyprn7PKb4WKkqaEHp61dFUmTRUlzWqHvjuhGRFAShZclY95/CVb5zmIvyKmVI4O3yFsM0RkzcbQbPb3IJjOXYnu/A2nXaCyea256C58vitdqyXHV2L3icj+EKk9LgSHd0zXAxpd08iPBGtK0J2YZTbeQyObsA9PLjNm4IKlpl56DjjJO+YR5N2FxNA3InqitY2Pd1HNFUzrTPoArVD+R00gytzTIjewFC7DJFAJ2PTeQ7jsebNMOlKUAJVt3STL6lEfHfAQxUwp9VCZr3dPf8fGhDANA6u3kWTRx8GctRftJkeRKRMhi0AizhpozuVmBD07JKq4f19MrNRszE1ouyo0nUGgs0V9FPjvVaep/fHoxhVk7Vg/dCPVfGrTjWLKB96YA5lko/rWF/RiPE8SL21XOWVBayT4whaA1kYXWRGJr+5OukkE79O9dA2dE=----ATTACHMENT:----MzkxMzIwNTAwNjM2Mzk2MCAzMTQ2MzA4NTc2NzY5NjQyIDMxNzg1Mzc1Njk0OTY0MTM=