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

环境准备

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

安装Alibaba Cloud SDK for PHP

您可以通过如下两种方式安装Alibaba Cloud SDK for PHP:

  • (推荐)通过Composer安装依赖。

    Composer是一款PHP工具,用于管理和安装项目的依赖项。

  • 下载使用包含所有类和依赖项的ZIP文件。

    您可以通过此链接下载 .zip 文件,并在项目中的选定位置解压,以获取Alibaba Cloud SDK for PHP。

完成以下操作,通过Composer安装Alibaba Cloud SDK for PHP作为依赖项。
  1. 下载并安装Composer。
    • Linux/MacOS:
      curl -sS https://getcomposer.org/installer | php

      假设下载composer.phar二进制文件至当前目录$HOME中。

    • Windows:

      单击这里下载并安装Composer。

  2. 设置环境变量。
    • Linux/MacOS:
      说明 完成本步骤之前,请确保PATH系统变量值中存在/usr/local/bin路径,否则请您根据实际情况为Composer设置可用的环境变量。

      执行以下命令,将composer.phar二进制文件移动到全局环境/usr/local/bin/composer目录下。

      sudo mv composer.phar /usr/local/bin/composer

      成功设置环境变量后,您就可以直接在您的终端使用composer命令了。

    • Windows:

      安装Composer过程中会自动配置环境变量,请跳过此步骤。

  3. 执行以下命令,安装Alibaba Cloud SDK for PHP至当前目录下。
    composer require alibabacloud/sdk
    说明 若由于网络问题无法正常安装,您可以使用阿里云Composer全量镜像
  4. 在PHP脚本中引入Composer自动加载工具。
    <?php
    
    require __DIR__ . '/vendor/autoload.php'; 

使用Alibaba Cloud SDK for PHP

以下代码示例展示了使用Alibaba Cloud SDK for PHP的基本步骤:

  1. 初始化客户端。
    <?php
    
    use AlibabaCloud\Client\AlibabaCloud;
    
    AlibabaCloud::accessKeyClient('accessKeyId', 'accessKeySecret')->asDefaultClient();
  2. 发起调用。
    • 使用RPC调用:
      <?php
      
      use AlibabaCloud\Client\AlibabaCloud;
      use AlibabaCloud\Client\Exception\ClientException;
      use AlibabaCloud\Client\Exception\ServerException;
      
      try {
          $result = AlibabaCloud::rpc()
                                ->product('Cdn')
                                ->version('2014-11-11')
                                ->action('DescribeCdnService')
                                ->method('POST')
                                ->request();
      
          print_r($result->toArray());
      
      } catch (ClientException $exception) {
          print_r($exception->getErrorMessage());
      } catch (ServerException $exception) {
          print_r($exception->getErrorMessage());
      }
    • 使用ROA调用:
      <?php
      
      use AlibabaCloud\Client\AlibabaCloud;
      use AlibabaCloud\Client\Exception\ClientException;
      use AlibabaCloud\Client\Exception\ServerException;
      
      try {
          $result = AlibabaCloud::roa()
                                ->regionId('cn-hangzhou') // 指定请求的地域,不指定则使用客户端地域、默认地域。
                                ->product('CS') // 指定产品。
                                ->version('2015-12-15') // 指定产品版本。
                                ->action('DescribeClusterServices') // 指定产品接口。
                                ->serviceCode('cs') // 设置ServiceCode以备寻址,非必须。
                                ->endpointType('openAPI') // 设置类型,非必须。
                                ->method('GET') // 指定请求方式。
                                ->host('cs.aliyun.com') // 指定域名则不会寻址,如认证方式为Bearer Token的服务则需要指定。
                                ->pathPattern('/clusters/[ClusterId]/services') // 指定ROA风格路径规则。
                                ->withClusterId('123456') // 为路径中参数赋值,方法名:with + 参数。
                                ->request(); // 发起请求并返回结果对象,请求需要放在设置的最后面。
      
          print_r($result->toArray());
      
      } catch (ClientException $exception) {
          print_r($exception->getErrorMessage());
      } catch (ServerException $exception) {
          print_r($exception->getErrorMessage());
      }