7x/sdk

A PHP SDK for the 7x API Suite

1.7 2024-12-06 16:49 UTC

This package is auto-updated.

Last update: 2024-12-06 16:49:51 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require Build Status

A PHP SDK for 7x APIs

To use this SDK, you will need an API Key. Sign up on https://7x.ax to get started.

Install

composer require 7x/sdk

Usage

Timezone API

use Psr\Log\LogLevel;
use SevenEx\SDK\Timezone;

$tz = new Timezone('API_KEY', LogLevel::DEBUG);
$result = $tz->get('22.22', '33.33');
// $result is an instance of SevenEx\DTO\Timezone\Timezone.
$result->timezones; // An array of timezones matching the co-ordinates. Mostly just contains a single string.

Distance API

Distance by Coordinates

use Psr\Log\LogLevel;
use SevenEx\SDK\Distance;

$d = new Distance('API_KEY', LogLevel::DEBUG);
$result = $d->getByCoordinates('22.22', '33.33', '44.44', '55.55', 'km');
// $result is an instance of SevenEx\DTO\Distance\Distance.
$result->distance;
$result->unit; // km if you specified km, or mi if you specified mi. Defaults to km if not specified.

Distance by Address

use Psr\Log\LogLevel;
use SevenEx\SDK\Distance;

$d = new Distance('API_KEY', LogLevel::DEBUG);
$result = $d->getByAddress('Trafalgar Square, London, UK', 'Tower Bridge, London, UK', 'mi');
// $result is an instance of SevenEx\DTO\Distance\Distance.
$result->distance;
$result->unit; // mi in this case.

Geocoding API

Geocode by City / Address String

use Psr\Log\LogLevel;
use SevenEx\SDK\Geocode;

$g = new Geocode('API_KEY', LogLevel::DEBUG);
$result = $g->geocode('Trafalgar Square, London, UK');
// $result is an instance of SevenEx\DTO\Geocode\GeocodeCollection. This contains an array of objects.
foreach ($result->objects as $geocoded) {
    var_dump($geocoded->coordinates); // Instance of SevenEx\DTO\Common\Coordinates
    var_dump($geocoded->location); // Instance of SevenEx\DTO\Geocode\Location
}

Geocode Search (to build search suggest / autocomplete functionality)

use Psr\Log\LogLevel;
use SevenEx\SDK\Geocode;

$g = new Geocode('API_KEY', LogLevel::DEBUG);
$result = $g->search('Lon');
// $result is an instance of SevenEx\DTO\Geocode\GeocodeCollection. This contains an array of objects.
foreach ($result->objects as $geocoded) {
    var_dump($geocoded->coordinates); // Instance of SevenEx\DTO\Common\Coordinates
    var_dump($geocoded->location); // Instance of SevenEx\DTO\Geocode\Location
}

Reverse Geocoding by Coordinates

use Psr\Log\LogLevel;
use SevenEx\SDK\Geocode;

$g = new Geocode('API_KEY', LogLevel::DEBUG);
$result = $g->reverse('55.555555', '33.3333333');
// $result is an instance of SevenEx\DTO\Geocode\GeocodeCollection. This contains an array of objects.
foreach ($result->objects as $reversed) {
    var_dump($reversed->coordinates); // Instance of SevenEx\DTO\Common\Coordinates
    var_dump($reversed->location); // Instance of SevenEx\DTO\Geocode\Location
}

Numbers

use Psr\Log\LogLevel;
use SevenEx\SDK\Numbers;

$g = new Numbers('API_KEY', LogLevel::DEBUG);
$result = $g->arabicToLatin('١٢٣٤٥٦٧٨٩٠');
$result = $g->latinToArabic('1234567890');
// $result is an instance of SevenEx\DTO\Numbers\Arabic.
$result = $g->arabicToHtml('١٢٣٤٥٦٧٨٩٠');
// $result is an instance of SevenEx\DTO\Numbers\Html.

Date and Time

use Psr\Log\LogLevel;
use SevenEx\SDK\DateAndTime;

$g = new DateAndTime('API_KEY', LogLevel::DEBUG);
$result = $g->byTimezone('Europe/London'); // or
$result = $g->byAddress('Trafalgar Square, London, UK'); // or
$result = $g->byCoordinates('51.507351', '-0.127758');
// $result is an instance of SevenEx\DTO\DateAndTime\DateAndTime.

Geolocation

use Psr\Log\LogLevel;
use SevenEx\SDK\Geolocate;

$f = new Geolocate('API_KEY', LogLevel::DEBUG);
$result = $f->ip('109.74.197.73');
// Result is an instance of SevenEx\DTO\Geolocate\Geolocate.

Airports

use Psr\Log\LogLevel;
use SevenEx\SDK\Airports;

$a = new Airports('API_KEY', LogLevel::DEBUG);
$a->airport('LHR'); // returns is an instance of SevenEx\DTO\Airports\Airports
$a->airports(type: 'large_airport', country: 'ae'); // returns is an instance of SevenEx\DTO\Airports\SingleAirports
$a->types(); // returns is an instance of SevenEx\DTO\Airports\Types
$a->countries(); // returns is an instance of SevenEx\DTO\Airports\CountriesCollection
$a->country('ae'); // returns is an instance of SevenEx\DTO\Airports\CountriesCollection
$a->continents(); // returns is an instance of SevenEx\DTO\Airports\ContinentsCollection
$a->continent('eu'); // returns is an instance of SevenEx\DTO\Airports\ContinentCollection