An easy to use wrapper for the DigitalOcean API written in PHP.
src/
tests/
vendor/
Via Composer
$ composer require pxgamer/digitalocean-php
use \pxgamer\DigitalOcean\Client;
$client = new Client();
Client
- This is the main class and is used to hold the CURL functions. It also contains the API key, and should be called first.
- This class must be passed to other classes upon their initialisation.
Account
- This class is used to retrieve account information.
Domains
- This class is used to modify and retrieve domain information.
Droplets
- This class is used to manage multiple droplets, or all droplets for an account.
Droplet
- This class is used to manage droplets individually and can provides functions such as creating snapshots, enabling and disabling features, etc.
// Use the specific classes as their short names
use \pxgamer\DigitalOcean;
// Create a new Client instance
$client = new DigitalOcean\Client();
$client->setAuthKey('API_KEY');
// Initialise a new instance of each class
$account = new DigitalOcean\Account($client);
$domains = new DigitalOcean\Domains($client);
$droplets = new DigitalOcean\Droplets($client);
$droplet = new DigitalOcean\Droplet($client);
/**
* This is required to be initialised first.
* It must be passed into all other classes.
*/
use \pxgamer\DigitalOcean\Client;
$client = new Client();
$client->setAuthKey('API_KEY');
Initialise Account Class
use \pxgamer\DigitalOcean\Account;
$account = new Account($client);
Getting Account Information
$account->getAccount();
Initialise Domains Class
use \pxgamer\DigitalOcean\Domains;
$domains = new Domains($client);
Getting a list of domains
$domains->listDomains();
Getting information for a specific domain
$domains->getDomain('example.com');
Create a new domain
$domains->createDomain('example.com');
Deleting a domain
$domains->deleteDomain('example.com');
Initialise Droplets Class
// Requires the Client class to be initialised
use \pxgamer\DigitalOcean\Droplets;
$droplets = new Droplets($client);
Listing droplets
$droplets->listDroplets();
Listing neighbours of Droplets (droplets in the same location)
$droplets->listNeighbours();
Initialise Droplet Class
// Requires the Client class to be initialised
use \pxgamer\DigitalOcean\Droplet;
$droplet = new Droplet($client);
Setting the Droplet ID
$droplet->setDroplet('DROPLET_ID');
Getting information about a droplet
// Requires the droplet ID to be set
$droplet->getDroplet();
Creating a Droplet
$dropletAttributes = (array)[
'name' => 'example.com', // Required
'region' => 'nyc3', // Required
'size' => '512mb', // Required
'image' => 'ubuntu-14-04-x64', // Required
'ssh_keys' => null,
'backups' => false,
'ipv6' => true,
'user_data' => null,
'private_networking' => null,
'volume' => null,
'tags' => [
'web'
],
];
$droplet->createDroplet($dropletAttributes);
Deleting a Droplet
// Requires the droplet ID to be set
$droplet->deleteDroplet();
Listing a Droplet's neighbours
// Requires the droplet ID to be set
$droplet->listNeighbours();
Create a snapshot
// Requires the droplet ID to be set
$droplet->createSnapshot('SNAPSHOT-NAME');
Enabling backups for a Droplet
// Requires the droplet ID to be set
$droplet->enableBackups();
Disabling backups for a Droplet
// Requires the droplet ID to be set
$droplet->disableBackups();
Rebooting a Droplet
// Requires the droplet ID to be set
$droplet->reboot();
Power Cycling a Droplet
// Requires the droplet ID to be set
$droplet->powerCycle();
Shutting down a Droplet
// Requires the droplet ID to be set
$droplet->shutdown();
Powering off a Droplet
// Requires the droplet ID to be set
$droplet->powerOff();
Powering on a Droplet
// Requires the droplet ID to be set
$droplet->powerOn();
Resizing a Droplet
/**
* Requires the droplet ID to be set
*
* Attributes:
* - $size [string] (e.g. '1gb')
* - $increaseDiskSize [boolean] (e.g. false) - Determines whether this is a permanent resize or not
*/
$droplet->resize('1gb', false);
Reset a Droplet's password
// Requires the droplet ID to be set
$droplet->passwordReset();
Renaming a Droplet
// Requires the droplet ID to be set
$droplet->rename('NEW_DROPLET_NAME');
Enable IPv6 for a Droplet
// Requires the droplet ID to be set
$droplet->enableIPv6();
Enable Private Networking for a Droplet
// Requires the droplet ID to be set
$droplet->enablePrivateNetworking();
Please see CHANGELOG for more information on what has changed recently.
$ composer test
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.