Opis Closure
Installation, licensing and requirements
Opis Closure is a PHP library that allows you to serialize closures and arbitrary data.
The library’s key features:
- Serialize arbitrary objects
- Handles circular references
- Custom serialization/deserialization integrations
- Implementation for SPL Classes (ArrayObject, SplObjectStorage, etc.)
- Supports cryptographically signed data
- Serialize closures (anonymous functions)
- PHP 8+ syntax
- namespace and imports
- attributes, parameter types, return type
- use variables (including self-references)
- bound object (
$this
) and scope - static and short closures
- anonymous classes inside closures
- magic constants like
__FILE__
,__DIR__
,__LINE__
,__NAMESPACE__
,__CLASS__
,__TRAIT__
,__METHOD__
and__FUNCTION__
. - track residing source by using the
#trackme
directive - any error or exception, that might occur when executing an unserialized closure, can be caught and treated properly
- simple and very fast parser
- you can serialize/unserialize any closure unlimited times, even those previously unserialized
(this is possible because
eval()
is not used for unserialization) - provides a reflector that can give you information about the serialized closure
- the serialized source code is now almost identical to original
License
Opis Closure is licensed under the MIT License (MIT).
Requirements
- PHP 8.0 or higher
Migrating from 3.x
If your projects needs to support PHP 7.x you can continue using the 3.x
version
of Opis Closure. Otherwise, see the migration guide.
Installation
Opis Closure is available on Packagist and it can be installed from a command line interface by using Composer.
composer require opis/closure
Or you could directly reference it into your composer.json
file as a dependency
{
"require": {
"opis/closure": "^4.0"
}
}