🌊

Heroku/Laravel5.8/PHP7.4 ERROR: Trying to access array offset on value

2021/09/23に公開

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