acquia/acquia-sdk-php

此软件包已被放弃,不再维护。作者建议使用typhonius/acquia-php-sdk-v2软件包。

PHP Acquia SDK 允许开发者在 Acquia 服务之上构建应用程序。


README

请升级到typhonius/acquia-php-sdk-v2

PHP Acquia SDK

Build Status Code Coverage HHVM Status Scrutinizer Code Quality Latest Stable Version License

PHP Acquia SDK 允许开发者构建基于 Acquia 服务的应用程序。

Acquia 提供开源云托管、开发工具和世界级支持,用于 Drupal 开源内容管理系统,该系统统一了内容、社区和商业。

安装

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

{
    "require": {
        "acquia/acquia-sdk-php": "*"
    }
}

在命令行上运行 php composer.phar update 后,请将自动加载器包含到您的 PHP 脚本中,以便 SDK 类可用。

require_once 'vendor/autoload.php';

只取所需

而不是下载整个 SDK,建议只取所需的组件,通过引入您打算使用的单个组件来实现。例如,以下代码引入了 Acquia Search 组件及其依赖项。

{
    "require": {
        "acquia/acquia-sdk-php-search": "*"
    }
}

以下组件可用

用法

SDK 的基本用法示例。

云 API

Cloud API 是一个开发者可以使用它来扩展、增强和定制 Acquia Cloud 的网络服务。查看详细文档

use Acquia\Cloud\Api\CloudApiClient;

$cloudapi = CloudApiClient::factory(array(
    'username' => 'xxx...',  // Email address used to log into the Acquia Network
    'password' => 'xxx...',  // Acquia Network password
));

$sites = $cloudapi->sites();

Acquia Network

Acquia Network 是一套全面的工具集,可以帮助您创建和管理顶尖的网站,并由世界上最好的 Drupal 技术支持团队提供支持。

use Acquia\Network\AcquiaNetworkClient;
use Acquia\Common\Services;

$network = AcquiaNetworkClient::factory(array(
    'network_id' => 'XXXX-XXXXX',  // Acquia Network identifier
    'network_key' => 'xxxxxx...',  // Acquia Network key
));

// Enable Acquia Search and return index information.
$acquiaServices = Services::ACQUIA_SEARCH;

$subscription = $network->checkSubscription($acquiaServices);
print $subscription->getDashboardUrl();

Acquia Search

Acquia Search 是一个基于 Apache Solr 和其他开源技术构建的全托管企业级网站搜索解决方案。

use Acquia\Search\AcquiaSearchService;

// A subscription can have multiple indexes. The Acquia Search service builder
// generates credentials and clients for all of the subscription's indexes.
$search = AcquiaSearchService::factory($subscription);

$index = $search->get('XXXX-XXXXX');
$results = $index->select('my keywords');

有关更高级的使用示例,请参阅 PSolr 项目的文档。

推荐:使用服务管理器存储凭据,这样您就不必在每次搜索请求时都查询 Acquia Network。

Acquia Cloud 数据库

数据库组件允许开发者在运行 Acquia Cloud 上的应用程序时连接到活动的主数据库。

use Acquia\Cloud\Database\DatabaseService;

$service = new DatabaseService();

$creds = $service->credentials('mydatabase');
$dbh = new PDO($creds, $creds->username(), $creds->password());

本地开发

SDK 促进了喜欢在本地测试其应用程序的开发者的代码可移植性。以下代码片段展示了如何连接到本地数据库。

use Acquia\Cloud\Database\DatabaseService;
use Acquia\Cloud\Environment\LocalEnvironment;

// "mydatabase" is the name of the database on Acquia Cloud.
$environment = new LocalEnvironment('mysite');
$environment->addDatabaseCredentials('mydatabase', 'local_db_name', 'db_user', 'db_password');

$service = new DatabaseService($environment);

$creds = $service->credentials('mydatabase');
$dbh = new PDO($creds, $creds->username(), $creds->password());

Acquia Cloud Memcache

Memcache 组件允许开发者在运行 Acquia Cloud 上的应用程序时连接到 Memcached 缓存系统。

use Acquia\Cloud\Memcache\MemcacheService;

$service  = new MemcacheService();
$memcache = new \Memcache();

$creds = $service->credentials();
foreach ($creds as $server) {
    $memcache->addServer($server->host(), $server->port());
}

本地开发

SDK 促进了喜欢在本地测试其应用程序的开发者的代码可移植性。以下代码片段展示了如何连接到本地 memcache 服务器。

use Acquia\Cloud\Memcache\MemcacheService;
use Acquia\Cloud\Environment\LocalEnvironment;

$environment = new LocalEnvironment('mysite');
$environment->addMemcacheCredentials('localhost', 11211);

$service  = new MemcacheService(environment);
$memcache = new \Memcache();

$creds = $service->credentials();
foreach ($creds as $server) {
    $memcache->addServer($server->host(), $server->port());
}

有关详细信息,请参阅 Memcache PECL 项目的文档。

Acquia 服务管理器

Acquia 服务管理器简化了凭据管理和客户端实例化。凭据管理系统是使用 Guzzle 的服务构建器 子系统构建的,因此文档和技术也可以在此应用。

保存凭据

以下示例将客户端的配置保存到指定目录的 JSON 文件中。请注意,Acquia Search 客户端是一个服务构建器,因此我们使用 setBuilder 方法。

use Acquia\Rest\ServiceManager;

$services = new ServiceManager(array(
    'conf_dir' => '/path/to/conf/dir',
));

$services
    ->setClient('cloudapi', 'mysite', $cloudapi)
    ->setClient('network', 'XXXX-XXXXX', $network)
    ->setBuilder('search', $search)
;

$services->save();

实例化服务客户端

现在可以通过传递服务组(例如“network”,“search”等)和服务名(在setClient()方法中定义)从服务管理器实例化客户端。对于Acquia Search,服务构建器会自动使用其索引标识符来命名客户端。

use Acquia\Rest\ServiceManager;

$services = new ServiceManager(array(
    'conf_dir' => '/path/to/conf/dir',
));

$cloudapi = $services->getClient('cloudapi', 'mysite');
$network = $services->getClient('network', 'XXXX-XXXXX');
$index = $services->getClient('search', 'XXXX-XXXXX');

贡献与开发

使用GitHub的标准拉取请求(pull request)工作流程提交更改。

所有代码应遵循以下标准

建议使用PHP编码标准修复工具(PHP Coding Standards Fixer)来确保代码遵循上述编码标准。

有关本项目支持的Apache Ant目标,请参阅PHP项目启动器(PHP Project Starter)的文档