models


Модель ActionStateMessage

Пространство имён: goodboyalex\php_components_pack\models
Версия: 1.1
Доступно с: 1.0

Описание

Класс представляет собой модель сообщения о состоянии, реализующую интерфейс сериализации. Используется для хранения и передачи информации о состоянии модели или действия

Свойства класса

  • messageType: тип сообщения (MessageType)
  • message: текст сообщения (string)
  • flags: флаги сообщения (Dictionary)

Конструктор

public function __construct(
    MessageType $type = MessageType::INFO,
    string $message = "",
    Dictionary $flags = new Dictionary()
)

Параметры:

  • $type — тип сообщения (по умолчанию INFO)
  • $message — текст сообщения (по умолчанию пустая строка)
  • $flags — флаги сообщения (по умолчанию новый Dictionary)

Методы сериализации

serialize()

public function serialize(): string

Возвращаемое значение: JSON-строка с сериализованными данными

unSerialize()

public function unSerialize(string $serialized): void

Параметр:

  • $serialized — JSON-строка для десериализации

Структура сериализованных данных

{
  "type": "тип сообщения",
  "message": "текст сообщения",
  "flags": {
    "ключ": "значение"
  }
}

Примеры использования

Создание и сериализация

$message = new ActionStateMessage(
    MessageType::WARNING,
    "Операция выполнена с предупреждениями",
    new Dictionary(["retry" => true])
);

$serialized = $message->serialize();
// Результат: {"type":"WARNING","message":"Операция выполнена с предупреждениями","flags":{"retry":true}}

Десериализация

$serialized = '{"type":"ERROR","message":"Критическая ошибка","flags":{"code":500}}';

$message = new ActionStateMessage();
$message->unSerialize($serialized);

// После десериализации:
// $message->messageType = MessageType::ERROR
// $message->message = "Критическая ошибка"
// $message->flags = ["code" => 500]

Особенности реализации

  • Автоматическая конвертация типа сообщения в строку при сериализации
  • Поддержка произвольных флагов через Dictionary
  • Обратное преобразование строки типа в MessageType при десериализации

Рекомендации по использованию

  1. При создании сообщений:

    • Укажите корректный тип сообщения
    • Добавьте информативный текст
    • Используйте флаги для дополнительной информации
  2. При сериализации:

    • Проверяйте корректность входных данных
    • Обрабатывайте возможные ошибки
    • Сохраняйте целостность данных

На главную | Содержание