setono/shipmondo-php-sdk

Consume the Shipmondo API with this PHP SDK

v1.0.0-beta.3 2024-04-12 06:44 UTC

This package is auto-updated.

Last update: 2024-11-29 08:45:56 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\Response\PaymentGateways\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;

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.