terablaze/serializable-closure

Terablaze 可序列化闭包提供了一种简单且安全的方式来序列化 PHP 中的闭包。

dev-master / 1.x-dev 2023-01-20 21:30 UTC

This package is auto-updated.

Last update: 2024-09-21 01:14:10 UTC


README

Build Status License

介绍

此项目是 laravel/serializable-closure 包的分支,该包是 opis/closure: 3.x 包的分支。

Terablaze 可序列化闭包提供了一种简单且安全的方式来 序列化 PHP 中的闭包

官方文档

安装

需要 PHP 7.4+

首先,通过 Composer 包管理器安装 Terablaze 可序列化闭包

composer require terablaze/serializable-closure

使用方法

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

use Terablaze\SerializableClosure\SerializableClosure;

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

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

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

echo $closure(); // james;

注意事项

  1. 在闭包中创建 匿名类 不受支持。
  2. 在闭包中使用属性不受支持。
  3. 在 Terablaze Repl 等交互式环境上序列化闭包不受支持。

许可协议

可序列化闭包是开源软件,采用 MIT 许可协议