. */ namespace SP\Core\Bootstrap; use SP\Domain\Config\Ports\ConfigDataInterface; use SP\Domain\Config\Ports\UpgradeConfigServiceInterface; use SP\Domain\Config\Services\UpgradeConfigService; use SP\Domain\Upgrade\Services\UpgradeException; use SP\Domain\Upgrade\Services\UpgradeUtil; use SP\Util\VersionUtil; /** * Upgrade the config whenever is needed */ class UpgradeConfigChecker { private UpgradeConfigService $upgradeConfigService; private ConfigDataInterface $configData; public function __construct(UpgradeConfigServiceInterface $upgradeConfigService, ConfigDataInterface $configData) { $this->upgradeConfigService = $upgradeConfigService; $this->configData = $configData; } /** * Comprobar la versión de configuración y actualizarla * * @throws UpgradeException */ public function checkConfigVersion(): void { // TODO: remove // Do not check config version when testing if (IS_TESTING) { return; } if (file_exists(CONFIG_PATH . DS . 'config.php')) { $this->upgradeConfigService->upgradeOldConfigFile(VersionUtil::getVersionStringNormalized()); } $configVersion = UpgradeUtil::fixVersionNumber($this->configData->getConfigVersion()); if ($this->configData->isInstalled() && UpgradeConfigService::needsUpgrade($configVersion) ) { $this->upgradeConfigService->upgrade($configVersion, $this->configData); } } }