国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

DOMDocument-Serialisierung in PHP 8.1
P粉891237912
P粉891237912 2024-01-16 11:19:03
0
1
713

Ich versuche, die folgende Klasse mit der nativen PHP-Serialisierung kompatibel zu machen, insbesondere wenn sie unter PHP 8.1 ausgeführt wird.

class SerializableDomDocument extends DOMDocument
{
    private $xmlData;

    public function __sleep(): array
    {
        $this->xmlData = $this->saveXML();
        return ['xmlData'];
    }

    public function __wakeup(): void
    {
        $this->loadXML($this->xmlData);
    }
}

Auf niedrigeren PHP-Versionen ist alles in Ordnung, aber 8.1 produziert 未捕獲的異常:'SerializedDomDocument' 的序列化不允許 每當(dāng)嘗試將此類對(duì)象傳遞給 serialize() Funktionen. Hier ist ein Beispiel für Code, der eine solche Ausnahme generieren würde: https://3v4l.org/m8sgc.

Ich kenne die __serialize() / __unserialize() Methoden, die in PHP 7.4 eingeführt wurden, aber ihre Verwendung scheint auch nicht zu helfen. Der folgende Codeausschnitt verursacht die gleiche Ausnahme, die hier beobachtet wurde: https://3v4l.org/ZU0P3.

class SerializableDomDocument extends DOMDocument
{
    public function __serialize(): array
    {
        return ['xmlData' => $this->saveXML()];
    }

    public function __unserialize(array $data): void
    {
        $this->loadXML($data['xmlData']);
    }
}

Ich bin sehr verwirrt über dieses Problem und w?re für jeden Tipp sehr dankbar. Im Moment scheint der einzige Weg nach vorne darin zu bestehen, explizite Normalisierer/Denormalisierer einzuführen, was zu erheblichen ?nderungen an der Codebasis-API führen wird. Ich m?chte diese Situation vermeiden.

P粉891237912
P粉891237912

Antworte allen(1)
P粉041881924

2021 年 8 月 10 日,此更改已提交到版本 8.1 RC1:

將 DOM 類標(biāo)記為不可序列化

因此您無(wú)法再序列化這些類。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage