2017 © Pedro Peláez
 

library hackpostcodes

A hack library for using postcodes.io

image

mfmbarber/hackpostcodes

A hack library for using postcodes.io

  • Friday, April 21, 2017
  • by mfmbarber
  • Repository
  • 1 Watchers
  • 4 Stars
  • 4 Installations
  • Hack
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

HackPostcodes

HackPostcodes is a library written in Hack that wraps around the https://postcodes.io API., (*1)

Motivation

I've been learning the Hack programming language, and the Hip Hop Virtual Machine (HHVM) - so seemed like a good excuse to make something usable., (*2)

Dependancies

  • This was written using HHVM v3.18, it's probably backwards compatible to a degree though
  • PHPUnit 5.7.* - There isn't compatibility with HHVM above this yet

Installation

You can install this library using composer:, (*3)

$ composer install mfmbarber/HackPostcodes

Usage

To use the Postcodes library you first need to ensure you instantiate the CurlRequest class, and inject this into Postcodes as a constructor dependancy. This allows you to swap out the CurlRequest class with your own implementation if required. It also allows us to mock our dependancy when testing., (*4)

Once you have instantiated the Postcodes class you can then call any of the following methods off of this:, (*5)

  • lookup(string $postcode) : Map Use this to lookup a single postcode and get back a map of the result, (*6)

  • lookupBulk(Vector $postcodes) : Vector Use this to lookup a set of postcodes and get back a vector of maps, (*7)

  • lookupLatLon(Pair<float, float> $geolocation) : Vector Use this to look up at latitude / longitude point and return a vector of maps - where each map represents a local postcodes to that position, (*8)

  • lookupBulkLatLong(Vector<Pair<float, float>> $geolocations) : VectorVector Use this to lookup a vector of longitude / latitude points and return a vector, of vectors, of maps. Where each first level represents a corresponding longitude / latitude point, and each sub-vector represents the local postcodes to that location, (*9)

  • isValid(string $postcode) : bool Check to see if a postcode is valid (both regex and a UK postcode), (*10)

  • getNearest(string $postcode) : Vector Find the postcodes nearest to a given postcode, and return this as a Vector of Maps, (*11)

  • autocomplete(string $postcode, int $limit = 10) : Vector Given part of a postcode, and the amount of results to return (limit is 100), return a Vector of potential full postcode strings, (*12)

  • random() : Map Return a random postcode as a map, (*13)

-getDistance(string $postcode1, string $postcode2) : num Return the shortest distance (straight line) between two postcodes, this uses the Haversine formula to calculate., (*14)

<?hh

include 'vendor/autoload.php';
use mfmbarber\HackPostcodes\Postcodes;
use mfmbarber\HackPostcodes\CurlRequest;

$postcodes = new Postcodes(new CurlRequest());

$x = $postcodes->lookup('DT51HG');
var_dump($x);

$y = $postcodes->lookupBulk(Vector {'DT51HG', 'BH122BL'});
var_dump($y);

$z = $postcodes->getDistance('DT51HG', 'BH122BL');
var_dump($z);

Tests

Tests have been written using PHPUnit, and can be run from the root of the project:, (*15)

$ hhvm vendor/bin/phpunit tests/

Contributing

To contribute to this project, (*16)

  • Create a fork of the project
  • Create a feature/bugfix branch off of develop
  • Commit your changes
  • Write your tests
  • Once you are happy - PR back into develop
  • Once reviewed, the PR is accepted.
  • Hurrah!

Ensure you comment your code!, (*17)

License

This project is fully open sourced under MIT license, (*18)

The Versions

21/04 2017

dev-master

9999999-dev

A hack library for using postcodes.io

  Sources   Download

GPL

The Development Requires

by Matt Barber

21/04 2017

v1.0.2

1.0.2.0

A hack library for using postcodes.io

  Sources   Download

GPL

The Development Requires

by Matt Barber

21/04 2017

dev-develop

dev-develop

A hack library for using postcodes.io

  Sources   Download

GPL

The Development Requires

by Matt Barber

11/04 2017

v1.0.0

1.0.0.0

A hack library for using postcodes.io

  Sources   Download

GPL

The Development Requires

by Matt Barber