⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.10
Server IP:
15.204.235.159
Server:
Linux srv.techlup.co.ke 4.18.0-553.5.1.el8_10.x86_64 #1 SMP Wed Jun 5 09:12:13 EDT 2024 x86_64
Server Software:
Apache
PHP Version:
8.2.27
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
tech
/
www
/
script
/
vendor
/
opis
/
closure
/
View File Name :
README.md
Opis Closure ==================== [](https://travis-ci.org/opis/closure) [](https://packagist.org/packages/opis/closure) [](https://packagist.org/packages/opis/closure) [](https://packagist.org/packages/opis/closure) Serializable closures --------------------- **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 `eval` for 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 `__FILE__`, `__DIR__`, `__LINE__`, `__NAMESPACE__`, `__CLASS__`, `__TRAIT__`, `__METHOD__` and `__FUNCTION__`. - Automatically resolves all class names, function names and constant names used inside the closure - Track closure's residing source by using the `#trackme` directive - 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 ### Documentation The full documentation for this library can be found [here][documentation]. ### License **Opis Closure** is licensed under the [MIT License (MIT)][license]. ### Requirements * PHP ^5.4 || ^7.0 ## Installation **Opis Closure** is available on [Packagist] and it can be installed from a command line interface by using [Composer]. ```bash composer require opis/closure ``` Or you could directly reference it into your `composer.json` file as a dependency ```json { "require": { "opis/closure": "^3.5" } } ``` ### Migrating from 2.x If your project needs to support PHP 5.3 you can continue using the `2.x` version 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 `composer.json` file. ### Semantic versioning **Opis Closure** follows [semantic versioning][SemVer] specifications. ### Arbitrary object serialization This feature was primarily introduced in order to support serializing an object bound to a closure and available via `$this`. The implementation is far from being perfect and it's really hard to make it work flawless. I will try to improve this, but I can not guarantee anything. So my advice regarding the `Opis\Closure\serialize|unserialize` functions is to use them with caution. ### SuperClosure support **Opis Closure** is shipped with an analyzer(`Opis\Closure\Analyzer`) which aims to provide *Opis Closure*'s parsing precision and speed to [SuperClosure]. [documentation]: https://www.opis.io/closure "Opis Closure" [license]: http://opensource.org/licenses/MIT "MIT License" [Packagist]: https://packagist.org/packages/opis/closure "Packagist" [Composer]: https://getcomposer.org "Composer" [SuperClosure]: https://github.com/jeremeamia/super_closure "SuperClosure" [SemVer]: http://semver.org/ "Semantic versioning" [CHANGELOG]: https://github.com/opis/closure/blob/master/CHANGELOG.md "Changelog"