in How To

How to: PHP Class ‘NumberFormatter’ not found

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

Scrivi un commento

Commento