欢迎使用阿里云开发者工具套件。Alibaba Cloud SDK for PHP是支持PHP开发者快速访问阿里云服务的开发包,由Alibaba Cloud Client for PHP提供底层支持。Alibaba Cloud SDK for PHP让您不用复杂编程即可访问云服务器、云数据库RDS、云监控等多个阿里云服务。

如果您在使用SDK的过程中遇到任何问题,欢迎前往阿里云SDK问答社区提问,提问前请阅读提问引导提交反馈

在线调试和生成SDK示例

OpenAPI Explorer提供在线调用云产品API、动态生成 SDK示例代码和快速检索接口等功能,能显著降低使用API 的难度,推荐您使用。

环境准备

  • 您需要一个RAM账号以及一对AccessKey ID和AccessKey Secret。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey,或联系您的系统管理员。
  • 使用Alibaba Cloud SDK for PHP调用某个产品的API前,确保您已经在阿里云控制台开通了该产品。
  • Alibaba Cloud SDK for PHP适用于PHP 5.5.0或更高版本。 您可以通过php -v命令来获得当前使用的PHP版本号。
    说明 如果您使用了 RsaKeyPair客户端(仅支持日本站),还需要OpenSSL PHP 扩展

安装Alibaba Cloud SDK for PHP

完成以下操作安装Alibaba Cloud SDK for PHP:
  1. 下载并安装Composer。
    • Linux:
      curl -sS https://getcomposer.org/installer | php
    • Windows:

      单击这里下载并安装Composer。

  2. 执行Composer命令安装Alibaba Cloud SDK for PHP的最新版本。
    php -d memory_limit=-1 composer.phar require alibabacloud/sdk
  3. 在代码中引入Composer自动加载工具。
    <?php
    
    require __DIR__ . '/vendor/autoload.php';

使用Alibaba Cloud SDK for PHP

以下代码示例展示了调用阿里云产品的简单操作。详细用法,请参考使用说明
<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;

// 设置一个全局客户端
AlibabaCloud::accessKeyClient('key', 'secret')
            ->regionId('cn-hangzhou')// 请替换为自己的 Region ID
            ->asGlobalClient();

try {
    // 目前支持部分产品快捷调用,例如:
    $result = AlibabaCloud::ecs() // 指定产品
                          ->v20140526() // 指定版本
                          ->describeRegions() // 指定接口
                          ->withResourceType('type') // API参数以 with 开头
                          ->request(); // 执行请求

    // 对于没有支持快捷调用的产品您可以发起自定义请求,以上一个请求为例:
    $result2 = AlibabaCloud::rpcRequest() // 指定接口风格
                           ->product('Ecs') // 指定产品
                           ->version('2014-05-26') // 指定版本
                           ->action('DescribeRegions') // 指定接口
                           ->options([
                                         'query' => [
                                             'ResourceType' => 'type', // 参数设定
                                         ],
                                     ])
                           ->request(); // 执行请求

    // 访问结果里的 Regions 字段
    print_r($result['Regions']);
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}