Это библиотека для PHP, которая даёт возможность сериализовать (преобразовать в строку/байты) замыкания (closures / анонимные функции), а также анонимные классы и произвольные данные.
По умолчанию PHP не поддерживает сериализацию замыканий: попытка вызвать
serialize() на Closure приводит к ошибке.Opis/closure обходит это ограничение, обёртывая замыкание — и благодаря этому Вы можете сериализовать, передавать, хранить, а потом восстанавливать функцию и её контекст.
✅ Основные возможности
🔸 Поддержка PHP 8.0+ (включая 8.5) — современный синтаксис, типы, readonly-свойства, атрибуты и пр.
🔸 Сериализация замыканий, анонимных классов, сложных объектов, включая структуры с круговыми ссылками.
🔸 Возможность «безопасного» сериализования: есть поддержка подписанных (signed) данных.
🔸 Не требуется каких-либо расширений PHP (например, FFI) — всё реализовано «на чистом PHP».
🔸 Универсальность: не просто для замыканий — можно сериализовать «любой сложный объект», что даёт гибкость.
📦 Где это используется — и зачем Вам может пригодиться
Фреймворки и библиотеки, которым нужно отложенно сохранять/восстанавливать функции — например, очередь задач, jobs, callback-хранение.
Если хотите передавать анонимные функции между процессами, сохранять их в БД, передавать через очереди — без описания «класса + метод».
При необходимости сериализовать объекты с нестандартным состоянием, содержащие функции или анонимные классы.
Для систем, где нужно «сохранить и восстановить» произвольное состояние (функции, контекст, данные), несмотря на ограничение PHP на сериализацию замыканий.
⚠️ Что важно учитывать
🔹 Библиотека поддерживает PHP 8.0+; если проект на более старой версии — могут быть ограничения.
🔹 Бывают нюансы с «безопасностью»: если используются подписанные сериализованные данные и разные ключи — при десериализации может быть ошибка.
🔹 Как и с любой подобной техникой — злоумелое использование (например, unserialize от данных из ненадёжного источника) — может быть рискованным.
🔗 Github
Библиотека пхпшника