oprokidnev / bitcoind-php
bitcoind守护进程的PHP包装器
Requires
- php: >=5.4
- ext-curl: *
- ext-json: *
- psr/http-message: ~1.0
- psr/log: ~1.0
Requires (Dev)
- fzaninotto/faker: ~1.4.0
- mockery/mockery: ~0.9.0
- phpunit/phpunit: ~4.5.0
This package is auto-updated.
Last update: 2024-09-22 01:46:34 UTC
README
此项目用于与名为bitcoind的无头比特币程序进行交互。它还包含各种实用类,用于PHP开发者处理比特币。
安装
您可以使用Composer安装此库。您还可以在Packagist上查看更多关于此的信息。
将此添加到您的composer.json
文件中的require
部分。
{ "require": { "nbobtc/bitcoind-php": "~2.0" } }
用法
要使用此项目,只需创建一个新的类实例。
$command = new \Nbobtc\Command\Command('getinfo'); $client = new \Nbobtc\Http\Client('https://username:password@localhost:18332'); /** @var \Nbobtc\Http\Message\Response */ $response = $client->sendCommand($command); /** @var string */ $contents = $response->getBody()->getContents();
您可以使用正确的getter:getRequest()
和getResponse()
从客户端获取Request和Response对象。
由于结果以字符串形式返回,因此您可以按照自己的意愿解析响应。下面有一些想法!
命令
命令是以一种方式创建的,这样就可以通过提供设置所有必需信息的简单类来支持Bitcoin API的任何未来更新。
您可以将method
和所需的parameters
传递给对象。以下是一些示例
// No Parameters $command = new Command('getinfo'); // One Parameter $command = new Command('getblock', '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f'); // Multiple Parameters $command = new Command('sendfrom', array('fromaccount', 'tobitcoinaddress', 'amount'));
第二个参数必须与Bitcoin API wiki页面上的顺序相同。不需要为值分配任何键。
参数
参数是在创建新命令时提供的第二个参数。此参数可以是字符串或数组。例如,这两个都是有效的。
$command = new Command('getblock', array('000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f')); $command = new Command('getblock', '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f');
大多数Bitcoin API命令只接受一个参数。如果需要接受多个参数,则必须按该页面上的顺序以数组的形式传递参数。
扩展命令
如果出于任何原因需要扩展命令,则必须实现CommandInterface。您可以在接口内找到有关如何实现的文档。
驱动程序
驱动程序由ClientInterface用于连接到bitcoind服务并发送请求。它们返回响应。如果您需要实现新的驱动程序,请查看DriverInterface。
cURL驱动程序
这是默认使用的,允许您根据需要对其进行大量自定义。
您可以通过将它们传递到函数addCurlOption($option, $value)
中来设置各种cURL选项。
以下是配置和使用驱动程序的一个示例。
$driver = new \Nbobtc\Http\Driver\CurlDriver(); $driver ->addCurlOption(CURLOPT_VERBOSE, true) ->addCurlOption(CURLOPT_STDERR, '/var/logs/curl.err'); $client = new \Nbobtc\Http\Client('https://username:password@localhost:18332'); $client->withDriver($driver);
请随意查看CurlDriver
的源代码。
食谱
如何启用Keep-Alive(即持久连接)
此示例显示了如何将客户端配置为持久连接。
$client = new \Nbobtc\Http\Client('https://username:password@localhost:18332'); $client->getRequest()->withHeader('Connection', 'Keep-Alive');
如何设置CA证书
此库提供了一些很好的灵活性,允许您配置客户端以使用自己的CA证书。
$driver = new \Nbobtc\Http\Driver\CurlDriver(); $driver->addCurlOption(CURLOPT_CAINFO, '/path/to/cert'); $client = new \Nbobtc\Http\Client('https://username:password@localhost:18332'); $client->withDriver($driver);
如何将输出转换为数组
有些人喜欢数组
$response = $client->sendCommand($command); $output = json_decode($response->getBody()->getContents(), true);
如何将输出转换为stdClass对象
有些人喜欢对象
$response = $client->sendCommand($command); $output = json_decode($response->getBody()->getContents());
测试
所有测试均使用PHPUnit进行。您应该在项目的根目录(即phpunit.xml.dist所在的目录)中运行phpunit
,测试将自动运行。
如果您要提交拉取请求或在此库上工作,请确保测试能够通过。
变更日志
请参阅CHANGELOG.md。
包含有关版本信息的内容,例如添加了什么、有哪些更改等。查看它以了解从版本到版本的变化情况。
贡献
请参阅CONTRIBUTING.md。
贡献此项目的各种方式。
分支
master
这是最新和最好的,不应使用,它被视为用于测试新功能和功能的开发。不应在生产环境中使用。
2.x
当前生产分支。所有2.x标签都从此分支生成。
1.x
已弃用,仅用于修复错误和记录历史。
发布
您可以在GitHub上找到发布的完整列表。
清单
- 使用新小版本或补丁增加更新
composer.json
。 - 更新
README.md
,包含新版本的安装说明。 - 在CHANGELOG.md中更新发布信息,并删除未发布部分。
- 创建标签并将标签推送到远程。
- 将CHANGELOG.md中与发布相关的部分复制到GitHub上的发布文档中。
- 在CHANGELOG.md中更新未发布部分
许可协议(MIT) 
版权(C)2012-2014 Joshua Estes
在此软件及其相关文档文件(“软件”)的副本中,任何个人均可免费获得,用于处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供者提供软件的个人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“现状”提供,不提供任何形式的保证,明示或暗示,包括但不限于对适销性、适用于特定目的和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是因合同、侵权或其他方式产生的,无论是否与软件或软件的使用或其他方式有关。