_PHP <версия>_Moneta v<версия>` * Версия модуля — как её хранит PHPShop (`ModuleInfo::VERSION`, два числа): `Moneta v1.0`. */ final class CmsInfo { private const CMS_NAME = 'PHPShop'; private const MODULE_NAME = 'Moneta'; private const SEPARATOR = '_'; private function __construct() {} public static function format(string $cmsVersion, string $phpVersion, string $moduleVersion): string { return sprintf( '%s v%s' . self::SEPARATOR . 'PHP %s' . self::SEPARATOR . '%s v%s', self::CMS_NAME, $cmsVersion, $phpVersion, self::MODULE_NAME, $moduleVersion, ); } /** * Версия PHPShop из `[upload] version` конфига ядра: `670` -> `6.7.0`. */ public static function hostVersion(string $uploadVersion): string { if (preg_match('/\A[0-9]{3,}\z/', $uploadVersion) !== 1) { return 'unknown'; } return implode('.', str_split($uploadVersion)); } }