Здравствуйте, уважаемые программисты. Раньше у меня на сервере был установлен php версии 7.0.33 (native), но из-за одного проекта мне пришлось установить версию 7.3.27 (alt). Далее, в связи с переходом пришлось изменить способ автоматического подключения своих классов:
Было раньше
if(!function_exists('__autoload')){
function __autoload($classname) { $path = BASE_DIR.'/systemDir/classes/'.$classname; require_once("{$path}.php");}
}
Теперь стало
$autoload = function ($classname){ $path = BASE_DIR.'/systemDir/classes/'.$classname; require_once("{$path}.php");};
spl_autoload_register($autoload);
Так вот, раньше у меня без проблем работала функция суммы прописью
function number2string($value)
{
$value = explode('.', number_format($value, 2, '.', ''));
$f = new \NumberFormatter('ru', \NumberFormatter::SPELLOUT);
$str = $f->format($value[0]);
// Первую букву в верхний регистр.
$str = mb_strtoupper(mb_substr($str, 0, 1)) . mb_substr($str, 1, mb_strlen($str));
// Склонение слова "рубль".
$num = $value[0] % 100;
if ($num > 19) {
$num = $num % 10;
}
switch ($num) {
case 1: $rub = 'рубль'; break;
case 2:
case 3:
case 4: $rub = 'рубля'; break;
default: $rub = 'рублей';
}
return $str . ' ' . $rub . ' ' . $value[1] . ' копеек.';
}
А теперь, у меня не работает. Ругается, что не может найти класс NumberFormatter(). А найти он его пытается по пути указанному в autoload. Хотя это встроенный класс в php. И, кстати, если возникнут вопросы про поддержку класса
sudo apt-get install php7.0-intl
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлен пакет php7.0-intl самой новой версии (7.0.33-0+deb9u10).
Подскажите, как исправить это дело?