laravel/serializable-closure

Laravel Serializable Closure 提供了一种简单且安全的方式在 PHP 中序列化闭包。

v1.3.4 2024-08-02 07:48 UTC

This package is auto-updated.

Last update: 2024-09-20 14:24:27 UTC


README

Build Status Total Downloads Latest Stable Version License

介绍

本项目是优秀项目 opis/closure: 3.x 的分支。在 Laravel,我们决定分支这个包,因为即将推出的版本 4.x 是基于 FFI 扩展 的完全重写。由于 Laravel 是一个 Web 框架,而 FFI 默认不在 Web 请求中启用,这个分支使我们能够在支持新 PHP 版本的同时继续使用 3.x 系列。

Laravel Serializable Closure 提供了一种简单且安全的方式在 PHP 中 序列化闭包

官方文档

安装

需要 PHP 7.4+

首先,通过 Composer 包管理器安装 Laravel Serializable Closure

composer require laravel/serializable-closure

用法

您可以通过这种方式序列化闭包

use Laravel\SerializableClosure\SerializableClosure;

$closure = fn () => 'james';

// Recommended
SerializableClosure::setSecretKey('secret');

$serialized = serialize(new SerializableClosure($closure));
$closure = unserialize($serialized)->getClosure();

echo $closure(); // james;

注意事项

  • 闭包中不能创建匿名类。
  • 闭包中不能使用属性。
  • 不支持在 Laravel Tinker 等交互式环境(REPL)中序列化闭包。
  • 不支持序列化引用具有只读属性的对象的闭包。

贡献

感谢您考虑为 Serializable Closure 做贡献!贡献指南可以在 Laravel 文档 中找到。

行为准则

为了确保 Laravel 社区对所有成员都是开放的,请阅读并遵守 行为准则

安全漏洞

请查阅 我们的安全策略,了解如何报告安全漏洞。

许可

Serializable Closure 是在 MIT 许可下开源的软件,许可证详情请见 LICENSE.md