All Projects → typhonius → acquia-php-sdk-v2

typhonius / acquia-php-sdk-v2

Licence: MIT License
A PHP SDK for Acquia Cloud API v2 https://cloud.acquia.com/api-docs/#

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to acquia-php-sdk-v2

acquia cli
Provides a Robo console application to the Acquia CloudAPI for managing deployment tasks and environment configuration.
Stars: ✭ 30 (+57.89%)
Mutual labels:  acquia
cli
Acquia CLI
Stars: ✭ 30 (+57.89%)
Mutual labels:  acquia
acquia-cloud-vm
VirtualBox/Vagrant-based VM to closely match Acquia Cloud environment.
Stars: ✭ 20 (+5.26%)
Mutual labels:  acquia
sepia-assist-server
Core server of the SEPIA Framework responsible for NLU, conversation, smart-service integration, user-accounts and more.
Stars: ✭ 81 (+326.32%)
Mutual labels:  cloud-api
gcpsamples
Simple "Hello world" samples for accessing Google Cloud APIs in (node,dotnet,java,golang,python)
Stars: ✭ 100 (+426.32%)
Mutual labels:  cloud-api

Acquia PHP SDK for CloudAPI v2

Build Status Total Downloads Coverage Status Quality Status Mutation testing badge

License Latest Stable Version Latest Unstable Version

This library provides the capability to develop tooling which integrates with the new version (2.0) of Cloud API.

The original Acquia Cloud SDK has been deprecated so build tools requiring modern PHP versions and packages should use this library.

Installation

The SDK can be installed with Composer by adding this library as a dependency to your composer.json file.

{
    "require": {
        "typhonius/acquia-php-sdk-v2": "^2"
    }
}

Generating an API access token

To generate an API access token, login to https://cloud.acquia.com, then visit https://cloud.acquia.com/#/profile/tokens, and click Create Token.

  • Provide a label for the access token, so it can be easily identified. Click Create Token.
  • The token has been generated, copy the api key and api secret to a secure place. Make sure you record it now: you will not be able to retrieve this access token's secret again.

Usage

Basic usage examples for the SDK.

<?php

require 'vendor/autoload.php';

use AcquiaCloudApi\Connector\Client;
use AcquiaCloudApi\Connector\Connector;
use AcquiaCloudApi\Endpoints\Applications;
use AcquiaCloudApi\Endpoints\Environments;
use AcquiaCloudApi\Endpoints\Servers;
use AcquiaCloudApi\Endpoints\DatabaseBackups;
use AcquiaCloudApi\Endpoints\Variables;
use AcquiaCloudApi\Endpoints\Account;

$key = 'd0697bfc-7f56-4942-9205-b5686bf5b3f5';
$secret = 'D5UfO/4FfNBWn4+0cUwpLOoFzfP7Qqib4AoY+wYGsKE=';

$config = [
    'key' => $key,
    'secret' => $secret,
];

$connector = new Connector($config);
$client = Client::factory($connector);

$application = new Applications($client);
$environment = new Environments($client);
$server      = new Servers($client);
$backup      = new DatabaseBackups($client);
$variable    = new Variables($client);
$account     = new Account($client);

// Get all applications.
$applications = $application->getAll();

// Get all environments of an application.
$environments = $environment->getAll($applicationUuid);

// Get all servers in an environment.
$servers = $server->getAll($environmentUuid);

// Create DB backup
$backup->create($environmentUuid, $dbName);

// Set an environment varible
$variable->create($environmentUuid, 'test_variable', 'test_value');

// Download Drush 9 aliases to a temp directory
$client->addQuery('version', '9');
$result = $account->getDrushAliases();
$drushArchive = tempnam(sys_get_temp_dir(), 'AcquiaDrushAliases') . '.tar.gz';
file_put_contents($drushArchive, $aliases, LOCK_EX);

// Download database backup
// file_put_contents loads the response into memory. This is okay for small things like Drush aliases, but not for database backups.
// Use curl.options to stream data to disk and minimize memory usage.
$client->addOption('sink', $filepath);
$client->addOption('curl.options', ['CURLOPT_RETURNTRANSFER' => true, 'CURLOPT_FILE' => $filepath]);
$backup->download($environmentUuid, $dbName, $backupId);

Documentation

Documentation of each of the classes and methods has been automatically generated by phpDocumentor and exists in the gh-pages branch. This is available for browsing on GitHub.

I just want to talk to the API without having to write code

The Acquia Cli Robo application creates a command line tool for communicating with the API using this SDK. Its purpose is to provide a simple mechanism for interacting with the API without having to write a line of code.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].