Ao instalar uma aplicação em um servidor Windows (necessidade de projeto, adequação a infraestrutura do cliente), me deparei com o erro “NumberFormatter Not Found”.

A primeira reação foi verificar se havia esquecido algum commit de meu ambiente de desenvolvimento PHP Laravel local para o repositório Github, que tivesse uma correção de erro de namespace, não foi o caso.

Segunda opção para descobrir a causa: procurar no Google.

Prontamente recebi o retorno esperado, a extensão php intl é responsável pelo NumberFormatter e não estava instalada ou habilitada no servidor IIS Windows.

Para tanto bastou editar o arquivo php.ini e retirar o comentário da seguinte linha:

extension=ext/php_intl.dll

Na instalação do Windows funcionou normalmente, bastou salvar o arquivo php.ini e chamar a aplicação novamente - estava rodando um comando php artisan pelo terminal.

Porém, caso estivesse em um servidor Linux, compatível com Debian, como Ubuntu ou Mint (versões que geralmente utilizo), seria necessário instalar a extensão php intl no servidor.

Para fazer isso, bastaria executar a seguinte linha de comando no terminal:

sudo apt-get install php8.1-intl

Atenção a versão do PHP. Neste exemplo sugiro a versão 8.1, se você estiver usando PHP 7.x, ou superior à 8.1, ajuste a linha de comando de acordo.

Agora é só rodar a aplicação e vê-la funcionando sem erros - ao menos não referentes à esta extensão.