20250519
* [Dictionary, ObjectArray] Исправлен метод сериализации. Теперь классы нормально восстанавливаются.
This commit is contained in:
parent
f98a277986
commit
2e684cb862
@ -13,7 +13,7 @@ use IteratorAggregate;
|
|||||||
*
|
*
|
||||||
* @author Александр Бабаев
|
* @author Александр Бабаев
|
||||||
* @package php_components_pack
|
* @package php_components_pack
|
||||||
* @version 1.0.1
|
* @version 1.0.2
|
||||||
* @since 1.0.14
|
* @since 1.0.14
|
||||||
*/
|
*/
|
||||||
final class Dictionary implements ArrayAccess, IteratorAggregate, Countable, ISerializable
|
final class Dictionary implements ArrayAccess, IteratorAggregate, Countable, ISerializable
|
||||||
|
@ -17,7 +17,7 @@ use IteratorAggregate;
|
|||||||
*
|
*
|
||||||
* @author Александр Бабаев
|
* @author Александр Бабаев
|
||||||
* @package php_components_pack
|
* @package php_components_pack
|
||||||
* @version 1.0
|
* @version 1.0.5
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
final class ObjectArray implements ArrayAccess, IteratorAggregate, Countable, ISerializable
|
final class ObjectArray implements ArrayAccess, IteratorAggregate, Countable, ISerializable
|
||||||
|
@ -77,7 +77,11 @@ trait ArrayBasicTrait
|
|||||||
*/
|
*/
|
||||||
public function Serialize (): string
|
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
|
public function UnSerialize (string $serialized): void
|
||||||
{
|
{
|
||||||
$this->Container = json_decode($serialized, true);
|
/**
|
||||||
|
* ВНИМАНИЕ! Не используйте json_decode для десериализации объектов данного класса, так как он НЕ ВОССТАНОВЛЯЕТ
|
||||||
|
* классы объектов! Корректное восстановление объектов невозможно (восстанавливается только как ассоциативный массив).
|
||||||
|
*/
|
||||||
|
$this->Container = unserialize($serialized, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user