setono/coolrunner-php-sdk

使用此PHP SDK消耗CoolRunner API v3

v1.1.0 2024-03-06 11:33 UTC

README

Latest Version Software License Build Status Code Coverage Mutation testing

在PHP中使用CoolRunner API v3

安装

composer require setono/coolrunner-php-sdk

使用

<?php

use Setono\CoolRunner\Client\Client;
use Setono\CoolRunner\DTO\Collection;
use Setono\CoolRunner\DTO\Servicepoint;

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

$client = new Client('USERNAME', 'TOKEN');

$servicepoints = $client
    ->servicepoints()
    ->find('gls', 'DK', 'Stigsborgvej 60 4. th.', '9400', 'Nørresundby')
;

foreach ($servicepoints as $servicepoint) {
    echo $servicepoint->name . "\n";
    echo $servicepoint->address->street . "\n";
    echo $servicepoint->address->zipCode . ' ' . $servicepoint->address->city . "\n";
    echo $servicepoint->address->countryCode . "\n\n";
}

将输出类似的内容

Min Købmand Nørre Uttrup
Nørre Uttrup Torv 15
9400 Nørresundby
DK

Shell 7-Eleven Nørresundby
Østergade 27-29
9400 Nørresundby
DK

Next-Data.Dk
Østerbrogade 79
9400 Nørresundby
DK

...

生产使用

在内部,这个库使用CuyZ/Valinor库,该库非常适合将API响应转换为DTO。然而,这个库有一些开销,并且在使用缓存时性能最佳。

当你实例化Client时,你可以提供一个MapperBuilder实例。利用这个机会来设置缓存

<?php

use CuyZ\Valinor\Cache\FileSystemCache;
use CuyZ\Valinor\MapperBuilder;
use Setono\CoolRunner\Client\Client;
use Setono\CoolRunner\DTO\Collection;
use Setono\CoolRunner\DTO\Servicepoint;

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

$cache = new FileSystemCache('path/to/cache-directory');
$client = new Client('USERNAME', 'TOKEN', (new MapperBuilder())->withCache($cache));

你可以在这里了解更多信息:Valinor: 性能和缓存