typhonius/acquia-php-sdk-v2

Acquia CloudAPI v2 的 PHP SDK

资助包维护!
typhonius

3.3.1 2024-08-18 17:56 UTC

README

Build Status Total Downloads Coverage Status Quality Status Mutation testing badge

License Latest Stable Version Latest Unstable Version

这个库提供了开发与 Cloud API 新版(2.0)集成的工具的能力。

原始的 Acquia Cloud SDK 已弃用,因此需要现代 PHP 版本和包的构建工具应使用此库。

安装

SDK 可以通过将此库作为依赖项添加到 composer.json 文件中使用 Composer 安装。

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

生成 API 访问令牌

要生成 API 访问令牌,请登录到 https://cloud.acquia.com,然后访问 https://cloud.acquia.com/#/profile/tokens,并点击 创建令牌

  • 为访问令牌提供一个标签,以便易于识别。点击 创建令牌
  • 令牌已生成,将 API 密钥和 API 密钥复制到安全的地方。请确保您现在记录它:您将无法再次检索此访问令牌的秘密。

使用方法

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);

文档

每个类和方法的文档都已由 phpDocumentor 自动生成,并位于 gh-pages 分支中。 这些文档可在 GitHub 上浏览

我只是想与 API 通信,而不必编写代码

Acquia Cli Robo 应用程序 使用此 SDK 创建了一个用于与 API 通信的命令行工具。其目的是提供一个无需编写代码即可与 API 交互的简单机制。