setono/shipmondo-php-sdk

Consume the Shipmondo API with this PHP SDK

dev-master 2024-01-17 10:57 UTC

This package is auto-updated.

Last update: 2024-02-18 07:43:08 UTC


README

Latest Version Software License Build Status Code Coverage Mutation testing

Consume the Shipmondo API in PHP.

Installation

composer require setono/shipmondo-php-sdk

Usage

<?php

use Setono\Shipmondo\Client\Client;

require_once __DIR__ . '/../vendor/autoload.php';

$client = new Client('api_username', 'api_key');

$paymentGateways = $client
    ->paymentGateways()
    ->get()
;

foreach ($paymentGateways as $paymentGateway) {
    print_r($paymentGateway);
}

will output something:

Setono\Shipmondo\DTO\Model\PaymentGateway Object
(
    [id] => 1234
    [name] => quickpay
    [provider] => quick_pay
    [merchantNumber] => 67894321
)

Production usage

Internally this library uses the CuyZ/Valinor library which is particularly well suited for turning API responses into DTOs. However, this library has some overhead and works best with a cache enabled.

When you instantiate the Client use the opportunity to set a cache:

<?php

use CuyZ\Valinor\Cache\FileSystemCache;use Setono\Shipmondo\Client\Client;use Setono\Shipmondo\DTO\Box;

require_once '../vendor/autoload.php';

$cache = new FileSystemCache('path/to/cache-directory');
$client = new Client('API_USERNAME', 'API_KEY');
$client->getMapperBuilder()->withCache($cache);

You can read more about it here: Valinor: Performance and caching.