spiral-packages/serializable-closure

Laravel 可序列化闭包桥接 Spiral 框架

1.0.0 2022-09-13 12:35 UTC

This package is auto-updated.

Last update: 2024-08-30 01:34:21 UTC


README

PHP Latest Version on Packagist GitHub Tests Action Status Total Downloads

需求

请确保您的服务器已配置以下 PHP 版本和扩展

  • PHP 8.1+
  • Spiral 框架 3.0+

安装

您可以通过 composer 安装此软件包。

composer require spiral-packages/serializable-closure

安装软件包后,您需要从软件包中注册引导加载器。

protected const LOAD = [
    // ...
    \Spiral\SerializableClosure\Bootloader\SerializableClosureBootloader::class,
];

注意 如果您正在使用 spiral-packages/discoverer,则无需自行注册引导加载器。

配置

该软件包配置提供设置用于签名的秘密密钥的能力,该密钥将由 Laravel\SerializableClosure\SerializableClosure 类使用。

创建一个名为 app/config/serializable-closure.php 的文件。添加 secret 参数。例如

<?php

declare(strict_types=1);

return [
    'secret' => 'secret-key',
];

用法

Spiral\Serializer\SerializerManager 一起使用。例如

use Spiral\Serializer\SerializerManager;

$manager = $this->container->get(SerializerManager::class); 
$serializer = $manager->getSerializer('closure');

$result = $serializer->serialize($payload);
$result = $serializer->unserialize($payload);

此外,您还可以在 serializer 配置文件中将闭包设置为默认序列化程序并使用 Spiral\Serializer\SerializerInterface。例如

// config serializer.php

return [
    'default' => 'closure',
];

// usage
use Spiral\Serializer\SerializerInterface;

$serializer = $this->container->get(SerializerInterface::class); 

$result = $serializer->serialize($payload);
$result = $serializer->unserialize($payload);

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

有关详细信息,请参阅 CONTRIBUTING

安全漏洞

有关如何报告安全漏洞的详细信息,请参阅 我们的安全策略

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件