$this->phpConfigPath, 'configPath' => $this->configPath, 'configPathDev' => $this->configPathDev, ] = $args; if ( ! \is_file($this->configPath)) { $this->die("File invalid: {$this->configPath}"); } if ( ! $this->genPhpConfig()) { $this->die('Error: can not generate content to dist.'); } $this->copyConfigToTmp(); $this->die('PHP config file generated successful.', false); } private function copyConfigToTmp(): bool { return \copy($this->configPath, $this->configPathDev); } private function genPhpConfig(): bool { $config = \file_get_contents($this->configPath) ?: ''; if ( ! $config) { return false; } $config = \json_decode($config, true); if ( ! $config) { return false; } [ 'APP_VERSION' => $appVersion, 'APP_NAME' => $appName, 'APP_URL' => $appUrl, 'APP_CONFIG_URLS' => $appConfigUrls, 'APP_CONFIG_URL_DEV' => $appConfigUrlDev, 'APP_TEMPERATURE_SENSOR_URL' => $appTemperatureSensorUrl, 'APP_TEMPERATURE_SENSOR_PORTS' => $appTemperatureSensorPorts, 'AUTHOR_URL' => $authorUrl, 'UPDATE_PHP_URLS' => $updatePhpUrls, 'AUTHOR_NAME' => $authorName, 'LATEST_PHP_STABLE_VERSION' => $latestPhpStableVersion, 'LATEST_NGINX_STABLE_VERSION' => $latestNginxStableVersion, ] = $config; $updatePhpUrls = \implode("', '", $updatePhpUrls); $appConfigUrls = \implode("', '", $appConfigUrls); $appTemperatureSensorPorts = \implode(', ', $appTemperatureSensorPorts); $configContent = <<phpConfigPath, $configContent); } private function die(string $msg, bool $die = true): void { $msg = "[StyleGeneration] {$msg}\n"; if ($die) { die($msg); } echo $msg; } }