Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace Mautic\CoreBundle\Release; | |
| final class Metadata implements \JsonSerializable | |
| { | |
| private string $version; | |
| private int $majorVersion; | |
| private int $minorVersion; | |
| private int $patchVersion; | |
| private string $extraVersion; | |
| private string $stability; | |
| private string $minSupportedPHPVersion; | |
| private string $maxSupportedPHPVersion; | |
| /** | |
| * We use this property to show a warning message on the dashboard | |
| * if the user has a PHP version that is lower than the given version. | |
| * Users are warned that their PHP version won't be supported by future | |
| * Mautic versions anymore. | |
| */ | |
| private string $showPHPVersionWarningIfUnder; | |
| private string $minSupportedMauticVersion; | |
| private string $announcementUrl; | |
| private string $minSupportedMySqlVersion; | |
| private string $minSupportedMariaDbVersion; | |
| public function __construct(array $metadata) | |
| { | |
| $this->version = $metadata['version']; | |
| $this->stability = $metadata['stability']; | |
| $this->minSupportedPHPVersion = $metadata['minimum_php_version']; | |
| $this->maxSupportedPHPVersion = $metadata['maximum_php_version']; | |
| $this->showPHPVersionWarningIfUnder = $metadata['show_php_version_warning_if_under'] ?? ''; | |
| $this->minSupportedMauticVersion = $metadata['minimum_mautic_version']; | |
| $this->announcementUrl = $metadata['announcement_url']; | |
| $this->minSupportedMySqlVersion = $metadata['minimum_mysql_version'] ?? ''; | |
| $this->minSupportedMariaDbVersion = $metadata['minimum_mariadb_version'] ?? ''; | |
| preg_match('#^(\d+)\.(\d+)\.(\d+)[\. \-]?(.*+)?$#', $this->version, $match); | |
| $this->majorVersion = (int) $match[1]; | |
| $this->minorVersion = (int) $match[2]; | |
| $this->patchVersion = (int) $match[3]; | |
| $this->extraVersion = $match[4] ?? ''; | |
| } | |
| public function getVersion(): string | |
| { | |
| return $this->version; | |
| } | |
| public function getMajorVersion(): int | |
| { | |
| return $this->majorVersion; | |
| } | |
| public function getMinorVersion(): int | |
| { | |
| return $this->minorVersion; | |
| } | |
| public function getPatchVersion(): int | |
| { | |
| return $this->patchVersion; | |
| } | |
| public function getExtraVersion(): string | |
| { | |
| return $this->extraVersion; | |
| } | |
| public function getStability(): string | |
| { | |
| return $this->stability; | |
| } | |
| public function getMinSupportedPHPVersion(): string | |
| { | |
| return $this->minSupportedPHPVersion; | |
| } | |
| public function getMaxSupportedPHPVersion(): string | |
| { | |
| return $this->maxSupportedPHPVersion; | |
| } | |
| /** | |
| * We use this property to show a warning message on the dashboard | |
| * if the user has a PHP version that is lower than the given version. | |
| * Users are warned that their PHP version won't be supported by future | |
| * Mautic versions anymore. | |
| */ | |
| public function getShowPHPVersionWarningIfUnder(): string | |
| { | |
| return $this->showPHPVersionWarningIfUnder; | |
| } | |
| public function getMinSupportedMauticVersion(): string | |
| { | |
| return $this->minSupportedMauticVersion; | |
| } | |
| public function getAnnouncementUrl(): string | |
| { | |
| return $this->announcementUrl; | |
| } | |
| public function getMinSupportedMySqlVersion(): string | |
| { | |
| return $this->minSupportedMySqlVersion; | |
| } | |
| public function getMinSupportedMariaDbVersion(): string | |
| { | |
| return $this->minSupportedMariaDbVersion; | |
| } | |
| /** | |
| * @return array<string, int|string> | |
| */ | |
| public function jsonSerialize(): array | |
| { | |
| return [ | |
| 'version' => $this->version, | |
| 'stability' => $this->stability, | |
| 'minimum_php_version' => $this->minSupportedPHPVersion, | |
| 'maximum_php_version' => $this->maxSupportedPHPVersion, | |
| 'show_php_version_warning_if_under' => $this->showPHPVersionWarningIfUnder, | |
| 'minimum_mautic_version' => $this->minSupportedMauticVersion, | |
| 'announcement_url' => $this->announcementUrl, | |
| 'minimum_mysql_version' => $this->minSupportedMySqlVersion, | |
| 'minimum_mariadb_version' => $this->minSupportedMariaDbVersion, | |
| ]; | |
| } | |
| } | |