vhosting / tools-sdk
Tools API SDK
Requires
- php: ^8.4
- saloonphp/laravel-plugin: ^3.9
- saloonphp/pagination-plugin: ^2.2
Requires (Dev)
- orchestra/testbench: ^10.9
This package is auto-updated.
Last update: 2026-03-11 09:50:35 UTC
README
The PHP SDK for interacting with the VHosting Tools API, developed using the Saloon library.
Installation
You can install the package via composer:
composer require vhosting/tools-sdk
The package automatically registers itself in Laravel through the Service Provider.
Configuration
You can publish the configuration file with the following command:
php artisan vendor:publish --provider="VHosting\ToolsSdk\ToolsSdkServiceProvider"
These are the supported environment variables:
TOOLS_TOKEN=your-api-token TOOLS_URL=https://tools.vhosting-it.com TOOLS_MOCK=false
The token can be generated by visiting https://tools.vhosting-it.com/token.
Usage
The SDK provides a Laravel Facade that makes it easy to access resources.
Workflow Management
All workflow operations are accessible via ToolsSdk::workflow().
Retrieve all workflows (Paginated)
use VHosting\ToolsSdk\Facades\ToolsSdk; $paginator = ToolsSdk::workflow()->all(); foreach ($paginator as $workflow) { echo $workflow->id; echo $workflow->status; }
Retrieve a single workflow
$workflow = ToolsSdk::workflow()->get(123); echo $workflow->description; echo $workflow->tasks_count;
Dispatch a new workflow
$workflow = ToolsSdk::workflow()->dispatch('workflow-type-name', [ 'parameter1' => 'value1', 'parameter2' => 'value2', ]); echo $workflow->id;
Retry a failed workflow
ToolsSdk::workflow()->retry(123);
Mocking for Tests
The SDK integrates Saloon's faking system to facilitate testing:
use VHosting\ToolsSdk\Facades\ToolsSdk; use Saloon\Http\Faking\MockResponse; ToolsSdk::fake([ '*' => MockResponse::make(['id' => 1, 'status' => 'completed'], 200), ]);
It is also possible to enable mocks globally via the TOOLS_MOCK=true environment variable, which will use the default data defined in the Mocks class.
License
MIT License (MIT). For more information, please see the LICENSE file.