Digital Ocean API for Laravel Framework is a package created by Arayik Smbatyan (@arayiksmbatyan) from Lionix to make it easier to use Digital Ocean API in Laravel Framework.
The package is not using any external libraries like DO PHP SDK, it uses general DO API, therefore it is very easily extendable.
All the services can be used by injecting the service into your controller, by using the Digitalocean facade or by using the service facade (e.g. Droplets).
Droplets
Using via Service
<?php
namespace App\Http\Controllers;
use Digitalocean\Services\DropletsService;
class DigitalOceanController extends Controller
{
/**
* @throws \GuzzleHttp\Exception\GuzzleException
* @throws \JsonException
*/
public function droplets(DropletsService $dropletsService): \Illuminate\Http\JsonResponse
{
$droplets = $dropletsService->list();
return response()->json($droplets);
}
}
Using via Facade
Droplets::list();
Using via Digitalocean Facade
Digitalocean::droplets()->list();
Available Methods
list()
store()
show()
destroy()
Droplet Actions
Usage via Service
<?php
namespace App\Http\Controllers;
use Digitalocean\Services\DropletActionsService;
class DigitalOceanController extends Controller
{
/**
* @throws \GuzzleHttp\Exception\GuzzleException
* @throws \JsonException
*/
public function actions(DropletActionsService $actionService): bool
{
$dropletId = config('digital-ocean.dropletId');
$actionService->initiate($dropletId, 'snapshot', ['name' => 'test']);
$actionService->initiate($dropletId, 'reboot');
return response()->isOk();
}
}
DO Snapshot Command is pre-defined snapshot command which can be used to make a snapshot from any droplet you want, e.g. you can set up a daily snapshot for your droplet in Kernel.php file.