Skip to content

v1.1.0 — сериализация через cloudcastle/serialize

Latest

Choose a tag to compare

@Zorin-Alexey Zorin-Alexey released this 16 Jul 17:23
Immutable release. Only release title and notes can be modified.
b6332e5

Добавлено

  • toSerialized(?SerializerInterface $serializer = null) и Collection::fromSerialized(string $payload, ?SerializerInterface $serializer = null) — сериализация и восстановление элементов любым форматом cloudcastle/serialize: JSON по умолчанию, PHP с белым списком классов, igbinary, подписанный. Fail-safe контракт, DoS-лимиты, анти-POP (fail-closed исключение на неразрешённом классе).

Изменено

  • toJson() без флагов кодирует через cloudcastle/serialize: юникод без экранирования ("Москва" вместо "\u041c..."), дробные сохраняют тип (1.0, а не 1), вложенность и длина ограничены. Пользовательские флаги — прямой json_encode, совместимость полная. Цена расширенного контракта ≈2 % пропускной способности toJson.
  • Внутренний хэш уникальности (unique()/duplicates()) для объектов и массивов считается через PhpSerializer.

Качество

150 тестов, покрытие 100 % (554/554), MSI 100 % (565 killed / 0 escaped).