MessageType = $type; $this->IsCritical = $isCritical; $this->Message = $message; } /** * @inheritDoc */ public function UnSerialize (string $serialized): void { // Десериализую массив $array = json_decode($serialized, true); // Заполняю поля $this->MessageType = isset($array["MessageType"]) ? MessageType::FromName($array["MessageType"]) : MessageType::Info; $this->IsCritical = isset($array["IsCritical"]) && $array["IsCritical"] == 1; $this->Message = $array["Message"] ?? ""; } /** * @inheritDoc */ public function Serialize (): string { // Создаю массив результата $result = []; // Заполняю массив $result["MessageType"] = $this->MessageType->GetValue(); $result["IsCritical"] = $this->IsCritical ? 1 : 0; $result["Message"] = $this->Message; // Сериализую return json_encode($result); } }