2017 © Pedro Peláez
 

library boe-rates

Simple utility to download and process historical Bank of England Base Rates

image

netglue/boe-rates

Simple utility to download and process historical Bank of England Base Rates

  • Wednesday, October 5, 2016
  • by netglue
  • Repository
  • 1 Watchers
  • 0 Stars
  • 4 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Bank of England Base Rate Data Client

This small library retrieves historical bank of england base rate data from the BoE Website, parses the returned XML into a data structure and provides some helpful methods to interrogate the data set., (*1)

The Rate Service instance accepts an array of rate data in it's constructor that should take the following form:, (*2)

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

The Rate Service is an SplPriorityQueue instance, so $rates->top() will yield the most recent value because elements are inserted with the timestamp as the priority. Being a queue, iterating over it will remove elements, so clone before iterating if you want the data to stick around or use the $queue->toArray() method., (*3)

Installation

$ composer require netglue/boe-rates

Usage

Client BoeRateClient

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

Service 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);

About

Netglue makes web based stuff in Devon, England. We hope this is useful to you and we’d appreciate feedback either way :), (*4)

The Versions

05/10 2016

dev-master

9999999-dev

Simple utility to download and process historical Bank of England Base Rates

  Sources   Download

MIT

The Requires

 

The Development Requires

03/10 2016

1.0

1.0.0.0

Simple utility to download and process historical Bank of England Base Rates

  Sources   Download

MIT

The Requires

 

The Development Requires