* [Dictionary, ObjectArray] Исправлен метод сериализации. Теперь классы нормально восстанавливаются.
This commit is contained in:
Александр Бабаев 2025-05-19 07:04:25 +03:00
parent f98a277986
commit 2e684cb862
3 changed files with 12 additions and 4 deletions

View File

@ -13,7 +13,7 @@ use IteratorAggregate;
*
* @author Александр Бабаев
* @package php_components_pack
* @version 1.0.1
* @version 1.0.2
* @since 1.0.14
*/
final class Dictionary implements ArrayAccess, IteratorAggregate, Countable, ISerializable

View File

@ -17,7 +17,7 @@ use IteratorAggregate;
*
* @author Александр Бабаев
* @package php_components_pack
* @version 1.0
* @version 1.0.5
* @since 1.0
*/
final class ObjectArray implements ArrayAccess, IteratorAggregate, Countable, ISerializable

View File

@ -77,7 +77,11 @@ trait ArrayBasicTrait
*/
public function Serialize (): string
{
return json_encode($this->Container);
/**
* ВНИМАНИЕ! Не используйте json_encode для сериализации объектов данного класса, так как он НЕ СОХРАНЯЕТ классы объектов!
* Корректное восстановление объектов невозможно (восстанавливает только как ассоциативный массив).
*/
return serialize($this->Container);
}
/**
@ -85,6 +89,10 @@ trait ArrayBasicTrait
*/
public function UnSerialize (string $serialized): void
{
$this->Container = json_decode($serialized, true);
/**
* ВНИМАНИЕ! Не используйте json_decode для десериализации объектов данного класса, так как он НЕ ВОССТАНОВЛЯЕТ
* классы объектов! Корректное восстановление объектов невозможно (восстанавливается только как ассоциативный массив).
*/
$this->Container = unserialize($serialized, true);
}
}