Download the PHP package opis/closure without Composer
On this page you can find all versions of the php package opis/closure. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
All versions of closure with dependencies
Informations about the package closure
Opis Closure is a library that aims to overcome PHP's limitations regarding closure serialization by providing a wrapper that will make all closures serializable.
The library's key features:
- Serialize any closure
- Serialize arbitrary objects
- Doesn't use
evalfor closure serialization or unserialization
- Works with any PHP version that has support for closures
- Supports PHP 7 syntax
- Handles all variables referenced/imported in
use()and automatically wraps all referenced/imported closures for proper serialization
- Handles recursive closures
- Handles magic constants like
- Automatically resolves all class names, function names and constant names used inside the closure
- Track closure's residing source by using the
- Simple and very fast parser
- Any error or exception, that might occur when executing an unserialized closure, can be caught and treated properly
- You can serialize/unserialize any closure unlimited times, even those previously unserialized
(this is possible because
eval()is not used for unserialization)
- Handles static closures
- Supports cryptographically signed closures
- Provides a reflector that can give you information about the serialized closure
- Provides an analyzer for SuperClosure library
- Automatically detects when the scope and/or the bound object of a closure needs to be serialized in order for the closure to work after deserialization
The full documentation for this library can be found here.
Opis Closure is licensed under the MIT License (MIT).
- PHP ^5.4 || ^7.0
Or you could directly reference it into your
composer.json file as a dependency
Migrating from 2.x
If your project needs to support PHP 5.3 you can continue using the
of Opis Closure. Otherwise, assuming you are not using one of the removed/refactored classes or features(see
CHANGELOG), migrating to version
3.x is simply a matter of updating your
Opis Closure follows semantic versioning specifications.
Arbitrary object serialization
We've added this feature in order to be able to support the serialization of a closure's bound object.
The implementation is far from being perfect, and it's really hard to make it work flawless.
We will try to improve this, but we can't guarantee anything.
So our advice regarding the
Opis\Closure\serialize|unserialize functions is to use them with caution.