Skip to content

krystal/katapult-php

 
 

Repository files navigation

Katapult logo


Latest Version on Packagist Total Downloads

A PHP library for integrating with Katapult

Version constraints

  • V1.x supports PHP 5.6
  • V2.x supports PHP 7.4

Installation

You can install the package via Composer:

composer require krystal/katapult

Usage

use Krystal\Katapult\API\RestfulKatapultApiV1 as KatapultApi;
use Krystal\Katapult\Katapult;
use Krystal\Katapult\Resources\DataCenter;
use Krystal\Katapult\Resources\Organization;
use Krystal\Katapult\Resources\VirtualMachinePackage;

$katapult = Katapult::make(new KatapultApi(
    'your-katapult-api-token'
));

$dataCenters = $katapult->resource(DataCenter::class)->all();
$organization = $katapult->resource(Organization::class)->first();
$virtualMachinePackages = $katapult->resource(VirtualMachinePackage::class)->all();
$virtualMachines = $katapult->resource(Organization\VirtualMachine::class, $organization)->all();

Guzzle handler stack

You can inject your own handler stack for Guzzle, which is usually done for adding middleware, such as logging requests.

use Krystal\Katapult\API\RestfulKatapultApiV1 as KatapultApi;
use Krystal\Katapult\Katapult;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Middleware;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;

// Create a handler stack
$handlerStack = HandlerStack::create();

// Add some middleware
$handlerStack->push(Middleware::mapRequest(function(RequestInterface $request) {
    return $request;
}));

// And some more
$handlerStack->push(Middleware::mapResponse(function(ResponseInterface $response) {
    return $response;
}));

// Use the handler stack directly on the constructor
$katapult = Katapult::make(
    new KatapultApi('your-katapult-api-token', true, $handlerStack)
);

// Or by rebuilding the Guzzle client
$katapult = Katapult::make(
    (new KatapultApi('your-katapult-api-token'))
        ->rebuildClient($handlerStack)
);

Testing

KATAPULT_API_TOKEN=<your-token-here> composer test

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

PHP Package Boilerplate

This package was generated using the PHP Package Boilerplate.