Skip to content

Features

github-actions[bot] edited this page Jul 16, 2026 · 1 revision

🧩 Возможности CloudCastle Serialize

Главная · Сравнение · Быстрый старт

Пять форматов сериализации и два декоратора под единым фасадом Serializer. Каждая группа разобрана на отдельной странице — с принципом работы, плюсами и минусами, рекомендациями и антипаттернами.

Карта возможностей

mindmap
  root((Serialize))
    Форматы
      PhpSerializer анти-POP
      JsonSerializer fail-safe
      IgbinarySerializer
      PhpExporter в PHP-код
    Безопасность
      Whitelist классов
      Глубокая проверка
      DoS-лимиты
    Подпись
      SignedSerializer HMAC
      hash_equals
    Объекты
      ObjectMapper
      toArray / fromArray
Loading

Страницы возможностей

Раздел Что внутри
🔒 PHP-формат и анти-POP Serializer::php(), запрет объектов по умолчанию, whitelist, глубокая проверка, лимит длины
📋 JSON-формат Serializer::json(), fail-safe исключения, UTF-8, глубина, лимиты
✍️ Подпись нагрузки Serializer::signed(), HMAC-SHA256, seal/unseal, tamper-proof
📤 Экспорт в PHP-код Serializer::exporter(), enum/даты/stdClass, файлы для opcache
🔄 Нормализация объектов Serializer::mapper(), объект ↔ массив, типы конструктора, enum, даты

Принципы дизайна

  • Безопасность по умолчаниюunserialize() не восстанавливает объекты без явного whitelist; ловушки POP-цепочек исключены по построению.
  • Fail-safe — любая ошибка формата даёт контрактное исключение, а не тихий false/null.
  • DoS-устойчивость — лимиты длины нагрузки и глубины JSON на враждебном вводе.
  • Скорость через C-примитивы — тонкие обёртки над serialize/json_*/igbinary_*; fast-path пропускает глубокую проверку анти-POP для скаляров и массивов.
  • Ноль зависимостей — только PHP 8.1+ (igbinary — опциональное расширение).
  • Единый фасад — все форматы и декораторы создаются через Serializer::*().

Clone this wiki locally