netglue/boe-rates

一个简单的实用工具,用于下载和处理历史英格兰银行基准利率

1.0 2016-10-03 13:44 UTC

This package is auto-updated.

Last update: 2024-09-08 06:52:28 UTC


README

这个小型库从英格兰银行网站检索历史英格兰银行基准利率数据,将返回的XML解析成数据结构,并提供一些有用的方法来查询数据集。

利率服务实例在其构造函数中接受一个利率数据数组,其形式如下

[
    [
        'date' => // DateTime instance
        'rate' => // float
    ],
    // ... more elements
];

利率服务是一个SplPriorityQueue实例,因此$rates->top()将返回最新值,因为元素是以时间戳作为优先级插入的。作为一个队列,迭代它将移除元素,所以如果你想保留数据,请在迭代之前克隆,或者使用$queue->toArray()方法。

安装

$ composer require netglue/boe-rates

用法

客户端 BoeRateClient

use Netglue\Money\BoeRateClient;
$client = new BoeRateClient;
// Optionally set a different endpoint with…
// $client->setUrl('http://somewhere-else.com');
$rates = $client->get();

服务 BoeRateService

use Netglue\Money\BoeRateService;
$service = new BoeRateService($rates);
$first = $service->firstDate();
$last  = $service->lastDate();
$mostRecentRate = $service->getRate();
$date = DateTime::createFromFormat('Y-m-d', '2000-06-01');
$otherRate = $service->getRate($date);

// Iterate over rates: most recent first…

$queue = clone $service;
$queue->setExtractFlags($queue::EXTR_DATA);
foreach ($queue as $data) {
    printf(
        "The BoE base rate changed to %0.2f on %s\n",
        $data['rate'],
        $date['date']->format('l jS F Y')
    );
}

// Serialize to JSON for caching. Date format is optional and defaults to 'c'

$dateFormat = 'd/m/Y';
$json = $service->toJson($dateFormat);

// Initialize service from JSON string
$service = BoeRateService::jsonFactory($json, $dateFormat);

关于

Netglue在英国德文郡制作基于网络的工具。我们希望这对你有帮助,无论哪种方式我们都非常感谢:)