20250519
* [Dictionary, ObjectArray] Исправлен метод сериализации. Теперь классы нормально восстанавливаются.
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user