承接 mfmbarber/hackpostcodes 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mfmbarber/hackpostcodes

Composer 安装命令:

composer require mfmbarber/hackpostcodes

包简介

A hack library for using postcodes.io

README 文档

README

HackPostcodes is a library written in Hack that wraps around the https://postcodes.io API.

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.

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:

$ 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.

Once you have instantiated the Postcodes class you can then call any of the following methods off of this:

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

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

  • 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

  • lookupBulkLatLong(Vector<Pair<float, float>> $geolocations) : Vector<Vector> 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

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

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

  • 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

  • random() : Map Return a random postcode as a map

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

<?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:

$ hhvm vendor/bin/phpunit tests/

Contributing

To contribute to this project

  • 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!

License

This project is fully open sourced under MIT license

统计信息

  • 总下载量: 15
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 1
  • Forks: 1
  • 开发语言: Hack

其他信息

  • 授权协议: GPL
  • 更新时间: 2017-04-11

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固