44 lines
1.2 KiB
PHP
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));
|
|
}
|
|
}
|