spiral-packages / serializable-closure
Laravel 可序列化闭包桥接 Spiral 框架
1.0.0
2022-09-13 12:35 UTC
Requires
- php: ^8.1
- laravel/serializable-closure: ^1.2
- spiral/boot: ^3.0
- spiral/serializer: ^3.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- roave/security-advisories: dev-latest
- spiral/testing: ^2.0
- vimeo/psalm: ^4.20
This package is auto-updated.
Last update: 2024-08-30 01:34:21 UTC
README
需求
请确保您的服务器已配置以下 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)。有关更多信息,请参阅 许可文件