🌊
Heroku/Laravel5.8/PHP7.4 ERROR: Trying to access array offset on value
Overview
2019年4月頃に作成したLaravelのアプリをHeroku環境で運用していました。
そして2020年2月、アプリを改修しローカルで動作確認後にデプロイしたところエラーが...!
Environment
PHP on Heroku
=> 7.4.2
PHP 7.4 now available on Heroku
Herokuにアップデートの記事が2020/02/10付けで出ていました。
Laravel
composer.json
"laravel/framework": "5.8.*",
Laravelが指定しているphpのバージョン composer.json
"php": "^7.1.3",
Errors
[2020-02-14 15:26:14] staging.ERROR: Trying to access array offset on value of type null {"exception":"[object] (ErrorException(code: 0): Trying to access array offset on value of type null at /app/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php:147)
メールのバリデーション(今回の修正ではなにも触っていない)のところでエラーが発生していました。
このエラーログでググってみるとどうやらPHPが7.4に上がったことが原因のようですね。
Workaround
気持ちとしてはPHP7.4で動かしたかったのですが、急ぎということもあって、
暫定対応としてPHPのバージョンを下げるで今回発生したエラーを一旦回避することにしました。
composer.json
"php": ">=7.1.3,<7.4",
上記のように修正して、
composer update
を実行して最新化後にデプロイすると今まで通り動くようになりました。
HerokuのPHPのバージョンは
$ php -v
PHP 7.3.14
となっていました。
Discussion