XRP Ledger(XRPL)是由全球开发人员社区领导的分散的公共区块链。本文将展示如何在您的 php8 应用程序中实现XRPL communication。
先决条件
要开始,您需要了解如何安装composer软件包。我们目前将不涵盖基本的PHP安装和环境设置。
我们将在本文中使用php
命令在下面运行脚本。
对于本教程,我们假设您有:
- PHP和终端的基本知识
- composer安装在您的机器上
- php^8.1安装在您的机器上
项目设置
composer require xrplwin/xrpl
index.php
要运行示例应用程序创建index.php并在终端运行,请检查所有内容是否有效。
<?php
require __DIR__.'/vendor/autoload.php';
echo 'Hello world';
在终端运行:
php ./index.php
应该输出:
Hello world
现在乐趣开始了!
XRPL客户端设置
index.php
到Init XRPL客户端添加行以下。如果您想更改端点,请参考documentation。
<?php
require __DIR__.'/vendor/autoload.php';
$client = new \XRPLWin\XRPL\Client([]);
准备XRPL方法
index.php(part)
用参数准备XRPL API方法(see docs)。在此示例中,我们将尝试运行account_info
查询described here。
...
$account_info = $client->api('account_info')->params([
'account' => 'rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn',
'strict' => true,
'ledger_index' => 'current',
'queue' => true
]);
将请求发送到XRPLEDGER
index.php(part)
现在,当我们准备XRPL方法时,是时候将请求实际发送到XRPL并获得结果了。在catch
处理错误中,例如:机器没有Internet连接,XRPL端点是离线的,XRPL端点返回了非200或503 HTTP状态代码。
...
# Send request to Ledger
try {
$account_info->send();
} catch (\XRPLWin\XRPL\Exceptions\XWException $e) {
// Handle errors
throw $e;
}
检查响应是否成功并获得结果
index.php(part)
...
if(!$account_info->isSuccess()) {
//XRPL response is returned but field result.status
//did not return 'success', we will print returned error message
echo $account_info->result()->result->error_message;
return;
}
//Everything OK
$result = $account_info->finalResult();
print_r($result);
应该输出:
stdClass Object
(
[Account] => rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn
[Balance] => 59759978
[Flags] => 1048576
[LedgerEntryType] => AccountRoot
[MessageKey] => 0200000000000000000000000038901D3A772963CF12FF7C0E010FE350B6CCC45D
[OwnerCount] => 0
[PreviousTxnID] => 8A5E55F36D8131A322F2206EAE7DD29C36F7CFFECB59B9CB6C7B478B88AC13F3
[PreviousTxnLgrSeq] => 78523455
[RegularKey] => rhLkGGNZdjSpnHJw4XAFw1Jy7PD8TqxoET
[Sequence] => 192221
[index] => 92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F
)
完整index.php
<?php
require __DIR__.'/vendor/autoload.php';
$client = new \XRPLWin\XRPL\Client([]);
$account_info = $client->api('account_info')->params([
'account' => 'rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn',
'strict' => true,
'ledger_index' => 'current',
'queue' => true
]);
# Send request to Ledger
try {
$account_info->send();
} catch (\XRPLWin\XRPL\Exceptions\XWException $e) {
// Handle errors
throw $e;
}
if(!$account_info->isSuccess()) {
//XRPL response is returned but field result.status
//did not return 'success', we will print returned error message
echo $account_info->result()->result->error_message;
return;
}
//Everything OK
$result = $account_info->finalResult();
print_r($result);
结论
使用几行代码,您已成功查询XRPL JSON-RPC端点并提取结果。使用XRPLWin/XRPL API,您可以查询任何可用的XRPL方法,获取结果并在PHP应用中使用它们。
为了找出该API提供的高级功能,例如承诺,异步请求,分页,冷却速率限制,端点更改,在Github project中阅读更多。
您喜欢本教程吗?在Github上给我们ð!