更新时间:2026-11-10 GMT+08:00
PHP SDK调用示例
本文以调用Kafka的查询所有实例列表(ListInstances)接口为例,介绍华为云PHP SDK的使用方法。
安装SDK
推荐通过Composer安装华为云PHP SDK。Composer是PHP的依赖管理工具,允许在项目中声明依赖关系并安装这些依赖。
在命令终端执行以下命令安装Composer和华为云PHP SDK。以3.1.203版本的PHP SDK为例,最新的SDK版本信息可通过SDK中心查看获取。
# 安装Composer。如果已安装,可跳过此命令。
curl -sS https://getcomposer.org/installer | php
# 安装PHP SDK。
composer require huaweicloud/huaweicloud-sdk-php:3.1.203 使用SDK
以下是一个完整的PHP示例,演示如何使用华为云PHP SDK调用查询所有实例列表(ListInstances)接口。
<?php
namespace HuaweiCloud\SDK\Kafka\V2\Model;
require_once "vendor/autoload.php";
use HuaweiCloud\SDK\Core\Auth\BasicCredentials;
use HuaweiCloud\SDK\Core\Http\HttpConfig;
use HuaweiCloud\SDK\Core\Exceptions\ConnectionException;
use HuaweiCloud\SDK\Core\Exceptions\RequestTimeoutException;
use HuaweiCloud\SDK\Core\Exceptions\ServiceResponseException;
use HuaweiCloud\SDK\Kafka\V2\KafkaClient;
// ==================== 初始化客户端 ====================
// 从环境变量获取AK/SK,运行前需要提前把AK/SK设置为环境变量
$ak = getenv('CLOUD_SDK_AK');
$sk = getenv('CLOUD_SDK_SK');
$endpoint = "https://dms.ap-southeast-1.myhuaweicloud.com";
$projectId = "195e********4a708ad9f9********1d";
// 配置认证凭证
$credentials = new BasicCredentials($ak,$sk,$projectId);
$config = HttpConfig::getDefaultConfig();
$config->setIgnoreSslVerification(true);
// 初始化客户端
$client = KafkaClient::newBuilder(new KafkaClient)
->withHttpConfig($config)
->withEndpoint($endpoint)
->withCredentials($credentials)
->build();
// ==================== 构造请求对象 ====================
// 使用SDK中提供的Request对象封装请求参数
$request = new ListInstancesRequest();
$request->setEngine("kafka");
// ==================== 发起请求并处理响应 ====================
// 通过客户端调用对应API发起请求,调用成功将返回Response对象,调用失败将抛出对应异常
try {
$response = $client->ListInstances($request);
echo "\n";
echo $response;
} catch (ConnectionException $e) {
$msg = $e->getMessage();
echo "\n". $msg ."\n";
} catch (RequestTimeoutException $e) {
$msg = $e->getMessage();
echo "\n". $msg ."\n";
} catch (ServiceResponseException $e) {
echo "\n";
echo $e->getHttpStatusCode(). "\n";
echo $e->getRequestId(). "\n";
echo $e->getErrorCode() . "\n";
echo $e->getErrorMsg() . "\n";
}