Мой производственный сайт просто предоставляет старую версию ICU 4.2.1. Поскольку для Yii2 требуется версия 49.1 или выше, мне нужно сделать обходные пути в PHP.
Как мне получить порядковый номер ICU (libicu), который используется PHP во время выполнения. Поскольку у меня частые производственные обновления, мне нужно динамически получать номер версии в коде PHP, например, от
$libIcuVersion = ...
Номер версии показан в phpinfo.php
но вывод не может быть использован в моем коде.
Вы можете использовать этот слегка измененный метод, который использует Yii 2:
function checkPhpExtensionVersion($extensionName)
{
if (!extension_loaded($extensionName)) {
return false;
}
$extensionVersion = phpversion($extensionName);
if (empty($extensionVersion)) {
return false;
}
if (strncasecmp($extensionVersion, 'PECL-', 5) === 0) {
$extensionVersion = substr($extensionVersion, 5);
}
return $extensionVersion;
}
Других решений пока нет …