EC-CUBE4.0.2以下のバージョンをデバッグモードで開発していて、
Notice: unserialize(): Error at offset が発生して困った。
デバッグモードでなければ特に問題は出ないので、
放っておいても良いのですが、開発効率が悪いため、
何とかしたいと考えるエンジニアの方もいるのではないでしょうか。
今回はその解決方法を紹介させて頂こうと思います。
ポイントは、PHPのバージョンです。
7.3系になっていればこのまま読み進めてください。
7.3系ではオブジェクトのserialize/unserializeのルールが厳格化されており、
配列やJSON形式で扱わないといけないようになりました。
しかし、EC-CUBEの4.0.2以下のバージョンでは、プラグインに関するデータを
オブジェクトでそのままserializeしようとしている箇所があります。
その箇所を配列などに変換してあげれば、解決します。
変更箇所は以下を参考にしてみてください。
https://github.com/EC-CUBE/ec-cube/pull/4219/commits/76a46253f8379f1954dd7aa9f01851d2efbb79be
意外と気づきにくく、発見が難しいところでもあると思うので、
これを参考にサクッと直して頂ければ幸いです。