こんにちは、エンジニアの村上です。
WEB制作の訓練学校を卒業後、未経験からエンジニアとして勤め始めて4ヶ月が経過しました。
仕事もだんだんと慣れてきた矢先に、PHPをバージョン8へアップグレードする時に思わぬエラーがたくさん起きてあたふたしてしまいました。
その時に私が感じたことやその時に学んんだことを共有しようと思います。
まず、どうしてPHP8へのバージョンアップ時にエラーが多く表示されるのか色々と調査してみました。
調べてみるとPHP8では下位互換性のない変更点 がとても多いようです。
PHP 5とPHP 7はある程度、互換性が保たれていたのに対して、PHP8では互換性がなかったことがエラーが多発した主な要因ということがわかりました。
ちなみにPHP6は欠番となっているようです。
今回はPHP8で互換性の無くなってしまった機能を修正することで、エラーを解消することができました。
以下に今回の問題で対処した機能の一部を共有します。
エラーメッセージ | ||
|
PHP 8では波括弧 {} によるオフセットの指定が廃止されてしまったようでした。
ですので今回は角括弧 [] に置き換えたことでこの問題は解決しました。
エラーメッセージ | ||
|
get_magic_quotes_gpc()関数はPHP8で削除されてしまったようです。
機能自体が削除されたたので今回は、コード自体を削除することで対応しました。
エラーメッセージ | ||
|
mysql_connect() を含むMySQL関数が PHP 7 で非推奨となり、PHP 8 で完全に削除されたためにこのエラーが発生してしまったようです。
この場合は、MySQL関数の代わりにMySQLi関数を利用することでエラーを解消しました。
入社してエンジニアとして段々とできる仕事が増えて慣れてきたなと感じてきたところでしたが、
今回の出来事によって、まだまだWEBの世界は奥深いんだなと気付かされました。
今後も、セキュリティリスクやサポート終了の問題でPHPのバージョンアップを求められることが増えてくると思うので、エンジニアとしてしっかりとバージョン間の互換性に関する調査は続けていきたいと思います。