Files
PHPShop/moneta/class/CmsInfo.php
T

44 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace MonetaPhpShop;
/**
* Èäåíòèôèêàòîð CMS è ìîäóëÿ äëÿ `MNT_CMS` — îäíà ñòðîêà â ôîðìå è â îòâåòàõ
* Check/Pay URL: `PHPShop v<âåðñèÿ>_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));
}
}