holidayapi-php/README.md
Josh Sherman e97edee508 feat: include all endpoints
* Reworked interfacing to drop the versioning in the class name.
* Refactored / cleaned up existing code.
* Stuck with support for PHP 5.3+ since PHP 5.x still seems to hold majority.
* Abstracted request logic to another class for mocking.
* Added test suite and hit full code coverage.
* Updated readme, included migration guide and the full gamut of examples.
* Wired up travis-ci and coveralls for testing and coverage.
2019-10-10 00:12:13 -05:00

211 lines
4.1 KiB
Markdown

# Holiday API PHP Library
[![License](https://img.shields.io/npm/l/holidayapi-php?style=for-the-badge)](https://github.com/holidayapi/holidayapi-php/blob/master/LICENSE)
![PHP Version](https://img.shields.io/packagist/php-v/holidayapi/holidayapi-php?style=for-the-badge)
![Build Status](https://img.shields.io/travis/holidayapi/holidayapi-php/master?style=for-the-badge)
[![Coverage Status](https://img.shields.io/coveralls/github/holidayapi/holidayapi-php/master?style=for-the-badge)](https://coveralls.io/github/holidayapi/holidayapi-php?branch=master)
Official PHP library for [Holiday API](https://holidayapi.com) providing quick
and easy access to holiday information from applications written in PHP.
## Migrating from 1.x
Please note, version 2.x of this library is a full rewrite of the 1.x series.
The interfacing to the library has been simplified and existing applications
upgrading to 2.x will need to be updated.
| Version 1.x Syntax (Old) | Version 2.x Syntax (New) |
|--------------------------------------------|-----------------------------------------------------------|
| `$holiday_api = new \HolidayAPI\v1($key);` | `$holiday_api = new \HolidayAPI\Client(['key' => $key]);` |
Version 1.x of the library can still be found
[here](https://github.com/joshtronic/php-holidayapi).
## Documentation
Full documentation of the Holiday API endpoints is available
[here](https://holidayapi.com/docs).
## Installation
```shell
composer require holidayapi/holidayapi-php
```
## Usage
```php
$key = 'Insert your API key here';
$holiday_api = new \HolidayAPI\Client(['key' => $key]);
try {
// Fetch supported countries and subdivisions
$countries = $holiday_api->countries();
// Fetch supported languages
$languages = $holiday_api->languages();
// Fetch holidays with minimum parameters
$holidays = $holiday_api->holidays([
'country' => 'US',
'year' => 2019,
]);
var_dump($countries, $languages, $holidays);
} catch (Exception $e) {
var_dump($e);
}
```
## Examples
### Countries
#### Fetch all supported countries
```php
$holiday_api->countries();
```
#### Search for a country by code or name
```php
$holiday_api->countries([
'search' => 'united',
]);
```
### Languages
#### Fetch all supported languages
```php
$holiday_api->languages();
```
#### Search for a language by code or name
```php
$holiday_api->languages([
'search' => 'Chinese',
]);
```
### Holidays
#### Fetch holidays for a specific year
```php
$holiday_api->holidays([
'country' => 'US',
'year' => 2019,
]);
```
#### Fetch holidays for a specific month
```php
$holiday_api->holidays([
'country' => 'US',
'year' => 2019,
'month' => 7,
]);
```
#### Fetch holidays for a specific day
```php
$holiday_api->holidays([
'country' => 'US',
'year' => 2019,
'month' => 7,
'day' => 4,
]);
```
#### Fetch upcoming holidays based on a specific date
```php
$holiday_api->holidays([
'country' => 'US',
'year' => 2019,
'month' => 7,
'day' => 4,
'upcoming' => true,
]);
```
#### Fetch previous holidays based on a specific date
```php
$holiday_api->holidays([
'country' => 'US',
'year' => 2019,
'month' => 7,
'day' => 4,
'previous' => true,
]);
```
#### Fetch only public holidays
```php
$holiday_api->holidays([
'country' => 'US',
'year' => 2019,
'public' => true,
]);
```
#### Fetch holidays for a specific subdivision
```php
$holiday_api->holidays([
'country' => 'GB-ENG',
'year' => 2019,
]);
```
#### Include subdivision holidays with countrywide holidays
```php
$holiday_api->holidays([
'country' => 'US',
'year' => 2019,
'subdivisions' => true,
]);
```
#### Search for a holiday by name
```php
$holiday_api->holidays([
'country' => 'US',
'year' => 2019,
'search' => 'New Year',
]);
```
#### Translate holidays to another language
```php
$holiday_api->holidays([
'country' => 'US',
'year' => 2019,
'language' => 'zh', // Chinese (Simplified)
]);
```
#### Fetch holidays for multiple countries
```php
$holiday_api->holidays([
'country' => 'US,GB,NZ',
'year' => 2019,
]);
$holiday_api->holidays([
'country' => ['US', 'GB', 'NZ'],
'year' => 2019,
]);
```