mikegarde/country-codes

ISO 3166-1 Country Codes

0.5.0 2023-12-12 17:34 UTC

This package is auto-updated.

Last update: 2024-04-12 19:32:26 UTC


README

Packagist Packagist GitHub GitHub code size in bytes Libraries.io dependency status for GitHub repo

Country Codes & US States

ISO 3166-1, 3166-2-US

Install

Find on Packagist, and install using Composer.

composer require mikegarde/country-codes

Use

Country Codes

include 'vendor/autoload.php';

use Countries\Countries;

$countries = new Countries();
$result    = $countries->getCountry('US');
$result    = $countries->getCountry('USA');
$result    = $countries->getCountry('UnitedStates');
$result    = $countries->getCountry('United States');
$result    = $countries->getCountry('United States of America');

/*
$result = [
    'name'    => 'United States',
    'iso2'    => 'US',
    'iso3'    => 'USA',
    'isoNum'  => '840',
    'fips'    => 'US',
    'capital' => 'Washington',
    'isEU'    => 0,
    'isUK'    => 0,
    'isUS'    => 0,
];
*/

For your UI

$countries = new Countries();
$results   = $countries->getAllCountries();

return json_encode($results);

US Territory

$countries = new Countries(true);
if ($countries->isUSTerritory('PR'))
{
    echo 'Yep, a US Territory';
}

Do something for Canada

if ($countries->validate('CA', $order['consignee']['countryCode']))
{
    echo 'Blame Canada';
}

US States

Do something different when shipping outside the lower 48

$stateTest = new US();

if ($stateTest->isCONUS($order['consignee']['state']))
{
    echo 'You can select USPS, UPS, or DHL';
}
else // OCONUS
{
   echo 'USPS is your only option for shipping to AK, HI, APO, or an FPO address';
}

Local Development Notes

docker build . -t php:8.2

docker run --rm -it -v $(pwd):/app php:8.2 composer install
docker run --rm -it -v $(pwd):/app php:8.2 composer test
docker run --rm -it -v $(pwd):/app php:8.2 composer phpcs