使用 PHP 编码和解码 XDR 字符串

0.01.01 2023-11-11 01:30 UTC

This package is auto-updated.

Last update: 2024-09-11 03:19:46 UTC


README

Read and Write XDR with PHP

Latest Version on Packagist Total Downloads GitHub Actions

此包提供了 PHP 的 RFC 4506 外部数据表示标准实现。它旨在可扩展;您可以编码和解码自定义数据对象以及原始泛型。

此包目前处于测试版;API 仍可能发生变化。

重要提示:此包不支持作为原生类型的 四倍精度浮点数。但是,如果您需要,提供了工具来在您的项目中实现此功能。

安装

您可以通过 composer 安装此包

composer require stagerightlabs/phpxdr

使用

use StageRightLabs\PhpXdr\XDR;

// Encode
$xdr = XDR::fresh()
    ->write(42, XDR::INT)
    ->write(3.14, XDR::FLOAT)
    ->write('Bad Wolf', XDR::STRING);

$payload = $xdr->asBase64(); // AAAAKkBI9cMAAAAIQmFkIFdvbGY=

// Decode
$xdr = XDR::fromBase64('AAAAKkBI9cMAAAAIQmFkIFdvbGY=');
$int = $xdr->read(XDR::INT); // 42
$float = $xdr->read(XDR::FLOAT); // ~3.14
$string = $xdr->read(XDR::STRING); // 'Bad Wolf'

更多实现和使用详情可以在 wiki 中找到。

测试

./vendor/bin/phpunit

鸣谢

此包从 zulucrypto/stellar-apistellar/js-xdr 中汲取了许多灵感。

变更日志

请参阅 CHANGELOG 了解最近更改的详细信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件 ryan@stagerightlabs.com 而不是使用问题跟踪器。

许可

Apache 许可证 2. 请参阅 许可文件 了解更多信息。

PHP 包模板

此包使用 PHP 包模板Beyond Code 生成。