Sempre in tema di rilascio delle applicazioni, il problema che si è presentato questa volta è legato alla formattazione dei numeri secondo il sistema internazionale adottato.
Come sempre, in ambiente di sviluppo tutto funziona regolarmente ma in rilascio si presenta questo errore.
L’ambiente dove si presenta l’errore è un server Linux Ubuntu.
Class ‘NumberFormatter’ not found
Il problema è semplice da risolvere.
Consultando il manuale PHP per la classe NumberFormatter si procede verificando se la versione PHP nell’ambiente di rilascio sia adeguata.
Per fare questo si può accedere attraverso la bash si procede con il comando
php -v
Il risultato riporterà la versione PHP installata
PHP 7.0.33-0ubuntu0.16.04.14 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.33-0ubuntu0.16.04.14, Copyright (c) 1999-2017, by Zend Technologies
Visto che la versione è adeguata a gestire la classe NumberFormatter si procede alla sua installazione. Nel manuale si può notare che la classe fa parte della internationalization extension PHP che è gestito delle librerie.
php7.0-intl e php7.0-xsl
Prima di procedere verifichiamo che nel sistema che il modulo non sia installato utilizzando il comando
php -m
si otterrà un risultato simile al seguente nel quale si può notare l’assenza dei due moduli.
[PHP Modules]
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
Zend OPcache
zlib
[Zend Modules]
Zend OPcache
Attraverso i comandi
apt-get install php7.0-intl
apt-get install php7.0-xsl
si può procedere all’installazione dei moduli mancanti.
Per rendere i moduli attivi occorre riavviare il servizio apache sempre da bash tramite comando
apachectl restart