1. Go to this page and download the library: Download toin0u/digitalocean library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
toin0u / digitalocean example snippets
igitalOcean\DigitalOcean;
use DigitalOcean\Credentials;
// Set up your credentials.
$credentials = new Credentials('YOUR_CLIENT_ID', 'YOUR_API_KEY')
// Use the default adapter, CurlHttpAdapter.
$digitalOcean = new DigitalOcean($credentials);
// Or use BuzzHttpAdapter.
$digitalOcean = new DigitalOcean($credentials, new \HttpAdapter\BuzzHttpAdapter());
// Or
$digitalOcean->setAdapter(new \HttpAdapter\BuzzHttpAdapter());
// ...
$droplets = $digitalOcean->droplets(); // alias to Droplets class.
try {
// Returns all active droplets that are currently running in your account.
$allActive = $droplets->showAllActive();
printf("%s\n", $allActive->status); // OK
$firstDroplet = $allActive->droplets[0];
printf("%s\n", $firstDroplet->id); // 12345
printf("%s\n", $firstDroplet->name); // foobar
printf("%s\n", $firstDroplet->image_id); // 56789
printf("%s\n", $firstDroplet->size_id); // 66
printf("%s\n", $firstDroplet->region_id); // 2
printf("%s\n", $firstDroplet->backups_active); // true
printf("%s\n", $firstDroplet->ip_address); // 127.0.0.1
printf("%s\n", $firstDroplet->private_ip_address); // null
printf("%s\n", $firstDroplet->locked); // false
printf("%s\n", $firstDroplet->status); // active
printf("%s\n", $firstDroplet->created_at); // 2013-01-01T09:30:00Z
// Returns full information for a specific droplet.
printf("%s\n", $droplets->show(12345)->droplet->name); // foobar
// Creates a new droplet. The argument should be an array with 4 werOnDroplet = $droplets->powerOn(12345);
printf("%s, %s\n", $powerOnDroplet->status, $powerOnDroplet->event_id);
// Poweroffs a running droplet.
$powerOffDroplet = $droplets->powerOff(12345);
printf("%s, %s\n", $powerOffDroplet->status, $powerOffDroplet->event_id);
// Resets the root password for a droplet.
$resetRootPasswordDroplet = $droplets->resetRootPassword(12345);
printf("%s, %s\n", $resetRootPasswordDroplet->status, $resetRootPasswordDroplet->event_id);
// Resizes a specific droplet to a different size. The argument should be an array with size_id key.
$resizeDroplet = $droplets->resize(12345, array('size_id' => 123));
printf("%s, %s\n", $resizeDroplet->status, $resizeDroplet->event_id);
// Takes a snapshot of the running droplet, which can later be restored or used to create a new droplet
// from the same image. The argument can be an empty array or an array with name key.
$snapshotDroplet = $droplets->snapshot(12345, array('name' => 'my_snapshot'));
printf("%s, %s\n", $snapshotDroplet->status, $snapshotDroplet->event_id);
// Restores a droplet with a previous image or snapshot. The argument should be an array with image_id key.
$restoreDroplet = $droplets->restore(12345, array('image_id' => 123));
printf("%s, %s\n", $restoreDroplet->status, $restoreDroplet->event_id);
// Reinstalls a droplet with a default image. The argument should be an array with image_id key.
$rebuildDroplet = $droplets->rebuild(12345, array('image_id' => 123));
printf("%s, %s\n", $rebuildDroplet->status, $rebuildDroplet->event_id);
// Enables automatic backups which run in the background daily to backup your droplet's data.
$enableBackupsDroplet = $droplets->enableAutomaticBackups(12345);
printf("%s, %s\n", $enableBackupsDroplet->status, $enableBackupsDroplet->event_id);
// Disables automatic backups from running to backup your droplet's data.
$disableBackupsDroplet = $droplets->disableAutomaticBackups(12345);
printf("%s, %s\n", $disableBackupsDroplet->status, $disableBackupsDroplet->event_id);
// Renames a specific droplet to a different name. The argument should be an array with name key.
$renameDroplet = $droplets->rename(12345, array('name' => 'new_name'));
printf("%s, %s\n", $renameDroplet->status, $renameDroplet->event_id);
// Destroys one of your droplets - this is irreversible !
$destroyDroplet = $droplets->destroy(12345);
printf("%s, %s\n", $destroyDroplet->status, $destroyDroplet->event_id);
} catch (Exception $e) {
die($e->getMessage());
}
// ...
$regions = $digitalOcean->regions(); // alias to Regions class.
try {
// Returns all the available regions within the Digital Ocean cloud.
$allRegions = $regions->getAll();
printf("%s\n", $allRegions->status); // OK
$region1 = $allRegions->regions[0];
printf("%s, %s\n", $region1->id, $region1->name); // 1, New York 1
$region2 = $allRegions->regions[1];
printf("%s, %s\n", $region2->id, $region2->name); // 2, Amsterdam 1
} catch (Exception $e) {
die($e->getMessage());
}
// ...
$images = $digitalOcean->images(); // alias to Images class.
try {
// Returns all the available images that can be accessed by your client ID. You will have access
// to all public images by default, and any snapshots or backups that you have created in your own account.
$allImages = $images->getAll();
printf("%s\n", $allImages->status); // OK
$firstImage = $allImages->images[0];
printf("%s\n", $firstImage->id); // 12345
printf("%s\n", $firstImage->name); // alec snapshot
printf("%s\n", $firstImage->distribution); // Ubuntu
// ...
$otherImage = $allImages->images[36];
printf("%s\n", $otherImage->id); // 32399
printf("%s\n", $otherImage->name); // Fedora 17 x32 Desktop
printf("%s\n", $otherImage->distribution); // Fedora
// Returns all your images.
$myImages = $images->getMyImages();
printf("%s\n", $myImages->status); // OK
$firstImage = $myImages->images[0];
printf("%s\n", $firstImage->id); // 12345
printf("%s\n", $firstImage->name); // my_image 2013-02-01
printf("%s\n", $firstImage->distribution); // Ubuntu
// Returns all global images.
$globalImages = $images->getGlobal();
printf("%s\n", $globalImages->status); // OK
$anImage = $globalImages->images[9];
printf("%s\n", $anImage->id); // 12573
printf("%s\n", $anImage->name); // Debian 6.0 x64
printf("%s\n", $anImage->distribution); // Debian
// Displays the attributes of an image.
printf("%s\n", $images->show(12574)->image->distribution); // CentOS
// Destroys an image. There is no way to restore a deleted image so be careful and ensure
// your data is properly backed up.
$destroyImage = $images->destroy(12345);
printf("%s\n", $destroyImage->status); // OK
// Transferts a specific image to a specified region id. The argument should be an array with region_id key.
$transfertImage = $images->transfert(12345, array('region_id' => 67890));
printf("%s\n", $transfertImage->status); // OK
} catch (Exception $e) {
die($e->getMessage());
}
// ...
$sshKeys = $digitalOcean->sshKeys(); // alias to SSHKeys class.
try {
// Returns all the available public SSH keys in your account that can be added to a droplet.
$allSshKeys = $sshKeys->getAll();
printf("%s\n", $allSshKeys->status); // OK
$firstSshKey = $allSshKeys->ssh_keys[0];
printf("%s\n", $firstSshKey->id); // 10
printf("%s\n", $firstSshKey->name); // office-imac
$otherSshKey = $allSshKeys->ssh_keys[1];
printf("%s\n", $otherSshKey->id); // 11
printf("%s\n", $otherSshKey->name); // macbook-air
// Shows a specific public SSH key in your account that can be added to a droplet.
$sshKey = $sshKeys->show(10);
printf("%s\n", $sshKey->status); // OK
printf("%s\n", $sshKey->ssh_key->id); // 10
printf("%s\n", $sshKey->ssh_key->name); // office-imac
printf("%s\n", $sshKey->ssh_key->ssh_pub_key); // ssh-dss AHJASDBVY6723bgB...I0Ow== me@office-imac
// Adds a new public SSH key to your account. The argument should be an array with name and ssh_pub_key keys.
$addSshKey = $sshKeys->add(array(
'name' => 'macbook_pro',
'ssh_pub_key' => 'ssh-dss AHJASDBVY6723bgB...I0Ow== me@macbook_pro',
));
printf("%s\n", $addSshKey->status); // OK
printf("%s\n", $addSshKey->ssh_key->id); // 12
printf("%s\n", $addSshKey->ssh_key->name); // macbook_pro
printf("%s\n", $addSshKey->ssh_key->ssh_pub_key); // ssh-dss AHJASDBVY6723bgB...I0Ow== me@macbook_pro
// Edits an existing public SSH key in your account. The argument should be an array with ssh_pub_key key.
$editSshKey = $sshKeys->edit(12, array(
'ssh_pub_key' => 'ssh-dss fdSDlfDFdsfRF893...jidfs8Q== me@new_macbook_pro',
));
printf("%s\n", $editSshKey->status); // OK
printf("%s\n", $editSshKey->ssh_key->id); // 12
printf("%s\n", $editSshKey->ssh_key->name); // macbook_pro
printf("%s\n", $editSshKey->ssh_key->ssh_pub_key); // ssh-dss fdSDlfDFdsfRF893...jidfs8Q== me@new_macbook_pro
// Deletes the SSH key from your account.
$destroySshKey = $sshKeys->destroy(12);
printf("%s\n", $destroySshKey->status); // OK
} catch (Exception $e) {
die($e->getMessage());
}
// ...
$sizes = $digitalOcean->sizes(); // alias to Sizes class.
try {
// Returns all the available sizes that can be used to create a droplet.
$allSizes = $sizes->getAll();
printf("%s\n", $allSizes->status); // OK
$size1 = $allSizes->sizes[0];
printf("%s, %s\n", $size1->id, $size1->name); // 33, 512MB
// ...
$size6 = $allSizes->sizes[5];
printf("%s, %s\n", $size1->id, $size1->name); // 38, 16GB
} catch (Exception $e) {
die($e->getMessage());
}
// ...
$domains = $digitalOcean->domains(); // alias to Domains class.
try {
// Returns all of your current domains.
$allDomains = $domains->getAll();
printf("%s\n", $allDomains->status); // OK
$domain1 = $allDomains->domains[0];
printf(
"%s, %s, %s, %s, %s, %s\n",
$domain1->id, $domain1->name, $domain1->ttl, $domain1->live_zone_file, $domain1->error, $domain1->zone_file_with_error
); // 100, foo.org, 1800, $TTL\\t600\\n@\\t\\tIN\\tSOA\\tNS1.DIGITALOCEAN.COM...., null, null
// ...
$domain5 = $allDomains->domains[4];
// ...
// Show a specific domain id or domain name.
$domain = $domains->show(123);
printf(
"%s, %s, %s, %s, %s, %s\n",
$domain->id, $domain->name, $domain->ttl, $domain->live_zone_file, $domain->error, $domain->zone_file_with_error
); // 101, bar.org, 1800, $TTL\\t600\\n@\\t\\tIN\\tSOA\\tNS1.DIGITALOCEAN.COM...., null, null
// Adds a new domain with an A record for the specified IP address.
// The argument should be an array with name and ip_address keys.
$addDomain = $domains->add(array(
'name' => 'baz.org',
'ip_address' => '127.0.0.1',
));
printf("%s\n", $addDomain->status); // OK
printf("%s\n", $addDomain->domain->id); // 12
printf("%s\n", $addDomain->domain->name); // macbook_pro
// Deletes the specified domain id or domaine name.
$deleteDomaine = $domains->destroy(123);
printf("%s\n", $deleteDomaine->status); // OK
// Returns all of your current domain records.
$records = $domains->getRecords(123);
printf("%s\n", $records->status); // OK
$record1 = $records->records[0];
printf("%s\n", $record1->id); // 33
printf("%s\n", $record1->domain_id); // 100
printf("%s\n", $record1->record_type); // A
printf("%s\n", $record1->name); // foo.org
printf("%s\n", $record1->data); // 8.8.8.8
printf("%s\n", $record1->priority); // null
printf("%s\n", $record1->port); // null
printf("%s\n", $record1->weight); // null
$record2 = $records->records[1];
// ...
// Adds a new record to a specific domain id or domain name.
// The argument should be an array with record_type and data keys.
// - record_type can be only 'A', 'CNAME', 'NS', 'TXT', 'MX' or 'SRV'.
// - data is a string, the value of the record.
//
// Special cases:
// - name is a // Deletes the specified domain record.
$deleteRecord = $domains->destroyRecord(123);
printf("%s\n", $deleteRecord->status); // OK
} catch (Exception $e) {
die($e->getMessage());
}