Habilite extensões PHP no Heroku via Composer

Da última vez, tive um problema interessante quando estava implantando meu projeto Symfony no Heroku.

Eu uso FosUserBundle para gerenciar contas e às vezes vi uma página em branco – era um erro de PHP.

Eu olhei nos registros e encontrei a mensagem de erro:

Fatal error: Call to undefined function FOSUserBundleUtilmb_convert_case() in /application/vendor/bundles/FOS/UserBundle/Util/Canonicalizer.php on line 18

A conclusão é simples: a extensão mbstring (string multibyte) é necessária, mas está desativada na minha hospedagem.

Infelizmente você não pode modificar o arquivo php.ini no Heroku e você precisa adicionar a extensão de outra maneira.

Como habilitar extensões PHP no Heroku?

Presumo que você use o Composer, então adicionar a extensão deve ser fácil.

Vá para o seu projeto e abra o arquivo composer.json e encontre a seção require .

Por exemplo:

"require": {
"php": ">=5.3.3",
"twig/extensions": "~1.0"
},

Adicione a esta seção o nome de sua extensão que você deseja ativar (no meu caso, adicionei mbstring). O resultado deve ser assim:

"require": {
"php": ">=5.3.3",
"twig/extensions": "~1.0",
"ext-mbstring": "*"
},

A próxima etapa é atualizar seu composer.lock

Vá para o console e digite:

$ composer update

Após atualizar o compositor, você deve confirmar suas alterações e enviar para o controle remoto heroku.

Após a implantação do processo, tudo funcionará bem.

Obrigado!