Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fatal error: Class 'NumberFormatter' not found

Tags:

php

I've been using this exact same code for ages, and I have never had a single problem. Now all of a sudden it has stopped working.

I have read across the internet about this problem, and apparently you need PHP 5.3 or higher installed, and the PHP intl plugin installed. I have both of these, yet I am still receiving a Fatal error: Class 'NumberFormatter' not found error whenever I use the following function:

function format_item($value)
{
       $format = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
       return $format->formatCurrency($value, 'AUD');
}

Also, here is a snippit from my php.ini file showing that I have the PHP intl plugin installed:

[intl]
intl.default_locale = fr_FR
; This directive allows you to produce PHP errors when some error
; happens within intl functions. The value is the level of the error produced.
; Default is 0, which does not produce any errors.
intl.error_level = E_WARNING

I also have the extension=php_intl.dll in my php.ini, and it is also in my directory.

Why am I getting this error?

like image 525
cannatown Avatar asked May 31 '15 05:05

cannatown


3 Answers

You just need to enable this extension in php.ini by uncommenting this line:

extension=ext/php_intl.dll

For more details visit, Enable intl extension

like image 106
Chandz Avatar answered Nov 07 '22 23:11

Chandz


All you need is:

apt-get install php7.0-intl

No need to change php.ini or do anything else. (Tested on PHP 7 on Ubuntu 16.04).

The most up-voted answer here has you uncommenting a .dll which will never solve anything unless you are on a Windows server!

like image 60
Nick Avatar answered Nov 07 '22 22:11

Nick


This worked for me (Ubuntu 18.10, PHP 7.2.15)

sudo apt-get install php-intl
service apache2 restart
like image 22
Wonko the Sane Avatar answered Nov 08 '22 00:11

Wonko the Sane