Код: Выделить всё
class SerializableDomDocument extends DOMDocument
{
private $xmlData;
public function __sleep(): array
{
$this->xmlData = $this->saveXML();
return ['xmlData'];
}
public function __wakeup(): void
{
$this->loadXML($this->xmlData);
}
}
образное/> Мне известно о методах __serialize () /__unserialize () , введенные в PHP 7.4, но использование их, кажется, не помогает. Следующий кусок кода приводит к тому же исключению, что и здесь, можно наблюдать: 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']);
}
}
< /code>
Я довольно сбит с толку этой проблемой и очень оценю любые подсказки. В настоящее время кажется, что единственным способом вперед было бы ввести явный нормализатор/денормализатор, что приведет к нарушению изменения в API кодовой базы. Я хотел бы избежать этого.
Подробнее здесь: https://stackoverflow.com/questions/729 ... ialization
Мобильная версия