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_KEYenvironment 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
packageIdor bycarrierCodeandtrackingNumber. 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
configurationoptions 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 testYou can utilize the composer script that runs phpcs, phpstan, and php-cs-fixer.
composer lintContributions, 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
Direnvusing 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 allowdirenvto auto-load every time you navigate to the repo. This will automatically load theNixenvironment which is running the proper version ofPHP and Xdebug (PHP 7.4)this repository supports/requires.direnv allow
- You will need to
cdout of the project directory after you first installdirenvand rundirenv allowfrom within the project directory, and thencdback into the project directory fordirenvto auto-load theNixenvironment 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