-
-
Notifications
You must be signed in to change notification settings - Fork 0
Comparison
Сравнение CloudCastle Serialize с аналогами. Таблица возможностей генерируется из
tools/features-data.php (composer docs:features), числовые бенчмарки —
из composer compare (composer docs:comparison).
Заглушка для дальнейшей разработки: наполните
tools/features-data.phpреальными возможностями и аналогами, аbenchmark_collect()— реальными операциями пакета.
Сгенерировано из tools/features-data.php (факты о поддержке). Легенда: ✅ полностью ·
| Функция | Serialize | laminas | symfony | jms | brick | 🏆 Победитель |
|---|---|---|---|---|---|---|
| PHP serialize/unserialize | ✅ | ✅ | ❌ | ❌ | ❌ | Serialize, laminas |
| JSON | ✅ | ✅ | ✅ | ✅ | ❌ | Паритет |
| igbinary (бинарный) | ✅ | ✅ | ❌ | ❌ | ❌ | Serialize, laminas |
| Экспорт в PHP-код (opcache) | ✅ | ❌ | ❌ | ❌ | ✅ | Serialize, brick |
| Функция | Serialize | laminas | symfony | jms | brick | 🏆 Победитель |
|---|---|---|---|---|---|---|
| Анти-POP: объекты запрещены по умолчанию | ✅ | ❌ | — | — | — | Serialize |
| Whitelist классов при десериализации | ✅ | ❌ | — | Serialize | ||
| Глубокая проверка вложенных классов | ✅ | ❌ | ❌ | ❌ | — | Serialize |
| HMAC-подпись нагрузки из коробки | ✅ | ❌ | ❌ | ❌ | ❌ | Serialize |
| Лимит длины нагрузки (DoS-защита) | ✅ | ❌ | ❌ | ❌ | — | Serialize |
| Лимит глубины JSON | ✅ | ❌ | — | Serialize | ||
| Fail-safe исключения (не тихий false/null) | ✅ | ✅ | ✅ | ✅ | Паритет |
| Функция | Serialize | laminas | symfony | jms | brick | 🏆 Победитель |
|---|---|---|---|---|---|---|
| Объект ↔ массив по типам конструктора | ✅ | ❌ | ✅ | ✅ | ❌ | Паритет |
| Восстановление enum | ✅ | ❌ | ✅ | ❌ | Serialize, symfony | |
| Восстановление DateTimeImmutable | ✅ | ❌ | ✅ | ✅ | ❌ | Паритет |
| Promoted/private свойства | ✅ | ❌ | ✅ | ❌ | Serialize, symfony | |
| Без аннотаций/атрибутов на DTO | ✅ | ❌ | ✅ | ❌ | ❌ | Serialize, symfony |
| Функция | Serialize | laminas | symfony | jms | brick | 🏆 Победитель |
|---|---|---|---|---|---|---|
| Единый фасад для всех форматов | ✅ | ❌ | Serialize | |||
| Zero runtime-зависимостей | ✅ | ❌ | ❌ | ✅ | Serialize, brick | |
| Bounded-кэш рефлексии | ✅ | — | — | Serialize |
| Функция | Serialize | laminas | symfony | jms | brick | 🏆 Победитель |
|---|---|---|---|---|---|---|
| PHP serialize (vs аналоги) | ✅ | — | — | — | Serialize | |
| JSON encode/decode (vs аналоги) | ✅ | ❌ | ❌ | — | Serialize | |
| Экспорт в PHP-код (vs аналоги) | ✅ | — | — | — | Serialize | |
| Fast-path обхода анти-POP для скаляров | ✅ | — | — | — | — | Serialize |
| Функция | Serialize | laminas | symfony | jms | brick | 🏆 Победитель |
|---|---|---|---|---|---|---|
| 100% покрытие всеми видами тестов | ✅ | ❌ | Serialize | |||
| Мутационное тестирование (MSI 100%) | ✅ | ❌ | ❌ | ❌ | ❌ | Serialize |
| Нагрузочные и перф-тесты в CI | ✅ | ❌ | ❌ | ❌ | ❌ | Serialize |
Сгенерировано из composer compare (PHP 8.1.34). Правки в блоке будут перезаписаны.
| Сценарий | cloudcastle/serialize | laminas/laminas-serializer | opis/closure | symfony/serializer | jms/serializer | brick/varexporter | 🏆 Победитель |
|---|---|---|---|---|---|---|---|
| PHP serialize (массив) | 1437193 ops/s | 806124 ops/s | 123290 ops/s | — | — | — | cloudcastle/serialize |
| PHP unserialize (массив) | 666265 ops/s | 524757 ops/s | 178398 ops/s | — | — | — | cloudcastle/serialize |
| JSON encode | 1882711 ops/s | 776313 ops/s | — | 110891 ops/s | 100276 ops/s | — | cloudcastle/serialize |
| JSON decode | 487863 ops/s | 431862 ops/s | — | 417581 ops/s | 169810 ops/s | — | cloudcastle/serialize |
| Экспорт в PHP-код | 168734 ops/s | — | — | — | — | 37475 ops/s | cloudcastle/serialize |
| igbinary serialize | 2020816 ops/s | 1011992 ops/s | — | — | — | — | cloudcastle/serialize |
| igbinary unserialize | 1148841 ops/s | 825529 ops/s | — | — | — | — | cloudcastle/serialize |
CloudCastle Serialize · · PHP 8.1+
GitHub · Packagist · Releases · Discussions
Email · Telegram · VK · Сетка · 💜 Поддержать проект
Исходники Wiki — каталог wiki/ в репозитории (синхронизация через GitHub Actions)