A PHP library built on the ShipEngine API offering low-level access as well as convenience methods.
Table of Contents
Install ShipEngine via Composer:
composer require shipengine/shipengine
- The only configuration requirement is an API Key.
The following example assumes that you have already set the
SHIPENGINE_API_KEY
environment variable with your Api Key usingputenv()
.
- validateAddress - Indicates whether the provided address is valid. If the address is valid, the method returns a normalized version of the address based on the standards of the country in which the address resides.
- normalizeAddress - Returns a normalized, or standardized, version of the address. If the address cannot be normalized, an error is returned.
- trackPackage - Track a package by
packageId
or bycarrierCode
andtrackingNumber
. This method returns the all tracking events for a given shipment.
- ShipEngine - A configurable entry point to the ShipEngine API SDK, this class provides convenience methods for various ShipEngine API Services.
<?php declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use ShipEngine\ShipEngine;
$apiKey = getenv('SHIPENGINE_API_KEY');
$shipengine = new ShipEngine($apiKey);
- You can also pass the ShipEngine object an array containing
configuration
options instead of a string.
<?php declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use ShipEngine\ShipEngine;
$apiKey = getenv('SHIPENGINE_API_KEY');
$config = array(
'apiKey' => $apiKey,
'pageSize' => 75,
'retries' => 3,
'timeout' => \DateInterval('PT60S')
);
$shipengine = new ShipEngine($config);
- You can now run all tests using PHPUnit: phpunit
composer test
You can utilize the composer
script that runs phpcs, phpstan, and php-cs-fixer.
composer lint
Contributions, enhancements, and bug-fixes are welcome! Open an issue on GitHub and submit a pull request.
We are managing php environment
with Nix
and Direnv, and we recommend downloading
them before contributing to this project.
-
The quickest way to install Nix is to open a terminal and run the following command, make sure to follow the instructions output by the installation script:
curl -L https://nixos.org/nix/install | sh
-
Next, install
Direnv
using one of th methods outlined on their install page here: Direnv Installation -
Lastly, you will need open your terminal and while this repository the current working directory and run
direnv allow
, this will allowdirenv
to auto-load every time you navigate to the repo. This will automatically load theNix
environment which is running the proper version ofPHP and Xdebug (PHP 7.4)
this repository supports/requires.direnv allow
- You will need to
cd
out of the project directory after you first installdirenv
and rundirenv allow
from within the project directory, and thencd
back into the project directory fordirenv
to auto-load theNix
environment properly.
- You will need to
This project also makes use of pre-commit hooks
to help run lint and tests at time of commit, to leverage this you will
need to install pre-commit and run the following command while in this repo:
pre-commit install