Про php и heroku

Думаю, что все слышали про heroku и про то, что у них уже давно появилась поддержка php. Но я бы не сказал, что php там идеально поддерживается.

После написания парсера и попытавшись проверить его на heroku, я получил ошибку:

Got error ‘PHP message: PHP Fatal error: Call to undefined function mb_strtolower()

Все верно, нет функции mb_strtolower. Удивительно, но обычно mbstring сразу идёт из коробки.

Немного погуглив я нашел много решений связанных с заливкой .so файла в “корень” приложения и добавления php.ini туда же с описаным экстеншном. Но эти варианты мне не помогли (хотя на гитхабе есть с десяток репозиториев с мануалами и библиотекой).

Оказалось, что есть решение намного проще. Необходимо в файл composer.json добавить дополнительный require:

https://gist.github.com/kotchuprik/1bfc712b10cfbdb240d0.js

После еще одного деплоя mbstring установился корректно и все заработало.

Если вы до сих пор не используете composer, то я настоятельно рекомендую заглянуть на официальный сайт для прочтения мануала и packagist.