MessageType = $type; $this->IsCritical = $isCritical; $this->Message = $message; } /** * @inheritDoc */ public function UnSerialize (string $serialized): void { // Десериализую массив $thisNew = unserialize($serialized); try { // Получаю класс $class = ClassMapper::MapToClassProperty(get_class($this), $thisNew); } catch (Exception) { $class = new ActionStateMessageModel(); } // Заполняю текущий класс ClassMapper::MapClass($class, $this); } /** * @inheritDoc */ public function Serialize (): string { // Создаю массив результата $result = []; // Получаю свойства класса $properties = get_object_vars($this); // Для каждого свойства класса foreach ($properties as $key => $value) { // - если значение является перечислением if ($value instanceof UnitEnum) { // -- получаю перечисление $result[$key] = $value->name; // -- следующий элемент continue; } // - если значение является NULL if ($value == null) { // -- присваиваю NULL $result[$key] = "null"; // -- следующий элемент continue; } // - присваиваю значение $result[$key] = $value; } // Сериализую массив и вывожу его return serialize($result); } }