ホームページ  >  に質問  >  本文

PHP 8.1 での DOMDocument シリアル化

私は、特に PHP 8.1 で実行する場合に、次のクラスをネイティブ PHP シリアル化と互換性のあるものにしようとしています。

リーリー

以前の PHP バージョンではすべて問題ありませんでしたが、8.1 では キャッチされない例外: 'SerializedDomDocument' のシリアル化は許可されていません このようなオブジェクトを Serialize() 関数に渡そうとすると、

がスローされます。このような例外を生成するコードの例は、https://3v4l.org/m8sgc です。

PHP 7.4 で導入された __serialize() / __unserialize()

メソッドは知っていますが、それらを使用しても役に立たないようです。次のコード スニペットは、https://3v4l.org/ZU0P3 で確認されたのと同じ例外を引き起こします。

リーリー

私はこの問題について非常に混乱しているので、ヒントをいただければ幸いです。現時点では、今後の唯一の方法は、明示的なノーマライザー/デノーマライザーを導入することだと思われます。これにより、コードベース API に大幅な変更が発生します。この状況は避けたいです。 ###
P粉891237912P粉891237912300日前531

全員に返信(1)返信します

  • P粉041881924

    P粉0418819242024-01-17 09:46:33

    2021 年 8 月 10 日に、この変更はバージョン 8.1 RC1 にコミットされました:

    DOM クラスをシリアル化不可能としてマークする

    したがって、これらのクラスをシリアル化することはできなくなります。

    返事
    0
  • キャンセル返事