stagerightlabs / phpxdr
使用 PHP 编码和解码 XDR 字符串
0.01.01
2023-11-11 01:30 UTC
Requires
- php-64bit: ^8.0
Requires (Dev)
- brick/math: ^0.9.3
- friendsofphp/php-cs-fixer: ^3.2
- phpstan/phpstan: ^1.2
- phpunit/phpunit: ^9.0
README
此包提供了 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-api 和 stellar/js-xdr 中汲取了许多灵感。
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 ryan@stagerightlabs.com 而不是使用问题跟踪器。
许可
Apache 许可证 2. 请参阅 许可文件 了解更多信息。
PHP 包模板
此包使用 PHP 包模板 由 Beyond Code 生成。