MacBSの日常生活的日記

PHP 8.1に変更

エックスサーバーからPHP 8.1に対応したという連絡が来ていたので、このブログも7.4.28から8.1.6に更新してみました。

ただ単純にバージョンを切り替えるだけではやや上手くいかない部分がありまして、いくつか修正をしました。
まずは動作する仕事用のWebサイトから切り替えて、そっちで実験しつつ対応していった形です。
具体的には8から仕様が変わった「多くのnoticeが警告に変換されるようになりました」という変更点に絡むところが大部分です。
その影響で自前のPHPの出力にwarningが混じってJavaScriptへの引き渡しに問題が出たのと、テーマやプラグインなどにもwarningの出るものがあった形です。

未定義の配列のキーを読み取ろうとした場合についてはisset()やarray_key_exists()で事前にチェックすれば解決です。
ただ自前のテーマやPHPでは良いとして、自動更新のかかるテーマやプラグインでは一時的に修正しても更新されてしまいますし、そこはもう少し外側のところでerror_reporting()にて対処するしかありませんでした。
自前のPHPもいぬリンク、電力使用状況、フォト蔵貼り付けと、思えば結構いろいろやっているもので、さらにモバイルとパソコン双方でも確認が必要でしたが、なんとかなったようです。

PageSpeed Insightsで性能をチェックしてみるとモバイル側はテーマがイマイチなのであまり性能向上はなかったものの、パソコン側はそれなりに向上が見られました。

[ PHP 7.4.28 ]

[ PHP 8.1.6 ]

WordPressで7.4と8.1では48%くらい高速になっているらしいというベンチマーク結果もありました。
PHP単独でみても20%以上高速になっているみたいです。
サーバやKUSANAGIみたいな別要素も絡むので、必ずしも実際の結果が一致するわけではないでしょうけどね。
8.0ではほとんど変わらなかったようですから、変更するならやっぱり8.1です。

ただPHP 8からは 警告(Warning)からエラー例外に、通知(Notice)から警告(Warning)への変更になっているものが多数あるので意外と修正は手間取るかも。
WordPressではプラグインが未対応なケースもあるでしょうし、いずれにしても十分なテストをした上で更新されることをオススメします。



モバイルバージョンを終了