. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Core\Rebuild\Actions; use Espo\Core\Rebuild\RebuildAction; use Espo\Core\Upgrades\Migration\VersionDataProvider; use Espo\Core\Utils\Config\ConfigWriter; /** * @noinspection PhpUnused */ class VersionUpdate implements RebuildAction { private const string DEV_VERSION = '@@version'; public function __construct( private VersionDataProvider $versionDataProvider, private ConfigWriter $configWriter, ) {} public function process(): void { $coreVersion = $this->versionDataProvider->getTargetVersion(); $stateVersion = $this->versionDataProvider->getPreviousVersion(); if ($coreVersion === self::DEV_VERSION || $stateVersion === self::DEV_VERSION) { return; } if (version_compare($stateVersion, $coreVersion) > 0) { $this->configWriter->set('version', $coreVersion); $this->configWriter->save();; } } }