Files
Moodle/classes/local/CmsInfo.php
T

48 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace paygw_moneta\local;
/**
* Идентификатор CMS и модуля для `MNT_CMS`:
* `Moodle v<release>|PHP <version>|Moneta v<release>`.
*
* @package paygw_moneta
* @copyright 2026 Moneta Labs {@link https://moneta.ru/}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
final class CmsInfo
{
private const CMS_NAME = 'Moodle';
private const MODULE_NAME = 'Moneta';
private function __construct() {}
public static function getCmsModuleVersion(): string
{
global $CFG;
$pluginInfo = \core_plugin_manager::instance()->get_plugin_info('paygw_moneta');
$moduleVersion = $pluginInfo?->release ?? (string) ($pluginInfo?->versiondisk ?? 'unknown');
return self::format(
cmsVersion: (string) ($CFG->release ?? 'unknown'),
phpVersion: PHP_VERSION,
moduleVersion: (string) $moduleVersion,
);
}
public static function format(string $cmsVersion, string $phpVersion, string $moduleVersion): string
{
return sprintf(
'%s v%s|PHP %s|%s v%s',
self::CMS_NAME,
$cmsVersion,
$phpVersion,
self::MODULE_NAME,
$moduleVersion,
);
}
}