setono / coolrunner-php-sdk
Consume the CoolRunner API v3 with this PHP SDK
Installs: 3 642
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 2
Requires
- php: >=8.1
- cuyz/valinor: ^1.0
- php-http/discovery: ^1.14
- psr/http-client: ^1.0
- psr/http-client-implementation: ^1
- psr/http-factory: ^1.0
- psr/http-factory-implementation: ^1
- psr/http-message: ^1.0
Requires (Dev)
- infection/infection: ^0.26
- kriswallsmith/buzz: ^1.2
- nyholm/psr7: ^1.5
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.6
- psalm/plugin-phpunit: ^0.18
- setono/code-quality-pack: ^2.7
This package is auto-updated.
Last update: 2024-12-06 13:23:49 UTC
README
Consume the CoolRunner API v3 in PHP.
Installation
composer require setono/coolrunner-php-sdk
Usage
<?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"; }
will output something like:
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
...
Production usage
Internally this library uses the CuyZ/Valinor library which is particularly well suited for turning API responses in DTOs. However, this library has some overhead and works best with a cache enabled.
When you instantiate the Client
you can provide a MapperBuilder
instance. Use this opportunity to set a cache:
<?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));
You can read more about it here: Valinor: Performance and caching.