acquia / acquia-sdk-php
Requires
- php: >=5.3.0
- cpliakas/psolr: >=0.4
- guzzle/service: ~3.0
- lstrojny/fxmlrpc: >=0.8,<0.9
- pear/net_dns2: 1.3.2
- symfony/filesystem: ~2.0
Requires (Dev)
- guzzle/plugin-mock: ~3.0
- pdepend/pdepend: ~1.0
- phploc/phploc: ~2.0
- phpmd/phpmd: ~1.0
- phpunit/phpunit: ~3.0
- satooshi/php-coveralls: *
- scrutinizer/ocular: ~1.0
- sebastian/phpcpd: ~2.0
Replaces
- acquia/acquia-sdk-php-cloud-api: 0.10.8
- acquia/acquia-sdk-php-cloud-db: 0.10.8
- acquia/acquia-sdk-php-cloud-env: 0.10.8
- acquia/acquia-sdk-php-cloud-memcache: 0.10.8
- acquia/acquia-sdk-php-common: 0.10.8
- acquia/acquia-sdk-php-env: 0.10.8
- acquia/acquia-sdk-php-json: 0.10.8
- acquia/acquia-sdk-php-network: 0.10.8
- acquia/acquia-sdk-php-rest: 0.10.8
- acquia/acquia-sdk-php-search: 0.10.8
README
请升级到typhonius/acquia-php-sdk-v2。
PHP Acquia SDK
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": "*" } }
以下组件可用
- acquia/acquia-sdk-php-cloud-api 云 API 客户端库
- acquia/acquia-sdk-php-cloud-db 返回 Acquia Cloud 活动主数据库的凭证
- acquia/acquia-sdk-php-cloud-memcache 返回 Acquia Cloud 上 memcache 服务器凭证
- acquia/acquia-sdk-php-cloud-env 提供关于 Acquia Cloud 环境的上下文信息
- acquia/acquia-sdk-php-common SDK 版本和表示 Acquia 服务的常量
- acquia/acquia-sdk-php-env 允许应用程序添加关于它们运行的环境的上下文信息
- acquia/acquia-sdk-php-json 与 JSON 一起工作的实用方法
- acquia/acquia-sdk-php-network Acquia Network 客户端库
- acquia/acquia-sdk-php-rest 消费 REST 类 API 的实用方法
- acquia/acquia-sdk-php-search Acquia 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)的文档。