-
-
Notifications
You must be signed in to change notification settings - Fork 0
Features
github-actions[bot] edited this page Jul 16, 2026
·
1 revision
Пять форматов сериализации и два декоратора под единым фасадом Serializer.
Каждая группа разобрана на отдельной странице — с принципом работы, плюсами и
минусами, рекомендациями и антипаттернами.
mindmap
root((Serialize))
Форматы
PhpSerializer анти-POP
JsonSerializer fail-safe
IgbinarySerializer
PhpExporter в PHP-код
Безопасность
Whitelist классов
Глубокая проверка
DoS-лимиты
Подпись
SignedSerializer HMAC
hash_equals
Объекты
ObjectMapper
toArray / fromArray
| Раздел | Что внутри |
|---|---|
| 🔒 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::*().
CloudCastle Serialize · · PHP 8.1+
GitHub · Packagist · Releases · Discussions
Email · Telegram · VK · Сетка · 💜 Поддержать проект
Исходники Wiki — каталог wiki/ в репозитории (синхронизация через GitHub Actions)