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 при десериализации
Рекомендации по использованию
-
При создании сообщений:
- Укажите корректный тип сообщения
- Добавьте информативный текст
- Используйте флаги для дополнительной информации
-
При сериализации:
- Проверяйте корректность входных данных
- Обрабатывайте возможные ошибки
- Сохраняйте целостность данных