* * @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:----C4XSEo7oWhbb2JRqInQwvDumxAe1+FPMimqwSWZ16FsRxUXgS063GG4g+WDPXtmWyZ//lnbB/gNHnhmeQUSiN6JcCpsJSHegw75WzCWK5sivOHrg9GpshIdTl6boeNHe750bq2MXB91sfOrJi3HtJR9pyLtBHMhUImWk6gu3FDoaMX97JnOQfJepB/mbzHWflxkjUnnYysSN0mcxRTu7Ey7x1bp7oiGs79ndi1TYwyXbNqAVJapK/VIDfkO8k8IB3xjEHdscaZXfrzpD8iufVLHKEhehnfdauN+FZhy+doHgT82sGrW5KDUizCjIeomLr69oJQtcmVJ7XfCinjF/9I7eCxnOHtzu6ljBAHIvJGj9v71S1dfRaeHho6eaex529kRKzcdKpS2fguTlXgJLtKy2uuphhh3HaSq+A+OJaT9C5PoCvZbtxqCaC9Tozc98gAWt4AehmB6meGa3rLVSVkcUeykpqjG+vHOP/NG0T3VzSpMNC3MGgRnzytL3ISm5Glia+Ma5XD75xUeWmMkAF09V2qWNipC4lFkuzquX2esNvaBs7T8e7uxWd25Gs6ccswWpbVpvC+dMaYKsK7UHJO9tJuCij+5aRJPbU0snV0sXHHx8c4Ahx2kQ7t9tFFv8fWvALnUkhYHUr6ZF4twO60XQas+/QBFni2z/ZbNd0VY=----ATTACHMENT:----NTQ3OTU4OTc3NzQ1Mjk5NiA2NzM0NDc5MjIzMDcxMTA1IDM3ODY3MjYzMTA1MjgxNjM=