microsoft/azure-storage-queue

本项目提供了一套PHP客户端库,简化了访问Microsoft Azure Storage Queue API的操作。

1.3.4 2021-10-09 03:29 UTC

README

有关此项目的停用和替代方案,请访问 停用通知:Azure Storage PHP客户端库将于2024年3月17日停用

本项目提供PHP客户端库,简化了访问Microsoft Azure Storage队列服务的操作。有关如何在Microsoft Azure上托管PHP应用程序的文档,请参阅 Microsoft Azure PHP开发者中心

Latest Stable Version

注意

  • 仓库 目前仅用于发布,如需提交问题或贡献,请访问 azure-storage-php
  • 如果您正在寻找Service Bus、Service Runtime、Service Management或Media Services库,请访问 https://github.com/Azure/azure-sdk-for-php
  • 如果您需要大文件(大于2GB)或64位整数支持,请安装PHP 7 64位版本。

功能

  • 队列
    • 创建、列出、删除队列,以及与队列元数据和属性一起工作
    • 创建、获取、预览、更新、删除消息

请查看API参考文档的详细信息。

入门

最低要求

  • PHP 5.6或更高版本

  • 有关依赖项,请参阅 composer.json

  • PHP所需扩展

    • php_fileinfo.dll
    • php_mbstring.dll
    • php_openssl.dll
    • php_xsl.dll
  • PHP推荐扩展

    • php_curl.dll

下载源代码

要从GitHub获取源代码,请输入

git clone https://github.com/Azure/azure-storage-php.git
cd ./azure-storage-php

通过Composer安装

  1. 在项目根目录中创建一个名为 composer.json 的文件,并将其中的以下代码添加到其中
{
  "require": {
    "microsoft/azure-storage-queue": "*"
  }
}
  1. 在项目根目录中下载 composer.phar

  2. 在项目根目录中打开命令提示符并执行以下操作

php composer.phar install

用法

在使用库调用任何Microsoft Azure Storage API之前,必须执行以下四个基本步骤。

  • 首先,包含自动加载脚本
require_once "vendor/autoload.php";
  • 包含您将使用的命名空间。

    要创建任何Microsoft Azure服务客户端,您需要使用REST代理类,例如 QueueRestProxy

use MicrosoftAzure\Storage\Queue\QueueRestProxy;

要处理异常,您需要

use MicrosoftAzure\Storage\Common\ServiceException;
  • 要实例化服务客户端,您还需要一个有效的 连接字符串。其格式为
DefaultEndpointsProtocol=[http|https];AccountName=[yourAccount];AccountKey=[yourKey]

QueueEndpoint=[myQueueEndpoint];SharedAccessSignature=[sasToken]
  • 实例化客户端对象 - 一个包装了给定服务可用调用的包装器。
$queueClient = QueueRestProxy::createQueueService($connectionString);

或对于AAD身份验证

$queueClient = QueueRestProxy::createQueueServiceWithTokenCredential($token, $connectionString);

使用中间件

要指定中间件,用户需要创建一个包含中间件的数组,并将其放在以“middlewares”为键的 $requestOptions 中。数组的顺序将影响中间件调用的顺序。通常可以在 API 调用的选项中设置 $requestOptions,例如 MicrosoftAzure\Storage\Queue\Models\ListQueuesOptions

如果中间件要应用于每个 REST 代理的 API 调用,用户可以在创建服务时将中间件推送到以“middlewares”为键的 $_options 数组中。这些中间件将在 $requestOptions 中的中间件之后始终被调用。例如:

$queueClient = QueueRestProxy::createQueueService(
    $connectionString,
    $optionsWithMiddlewares
);

每个中间件应该是一个实现 MicrosoftAzure\Storage\Common\Internal\IMiddleware 子类的实例,或者是一个遵循 Guzzle 中间件实现约定的 callable

用户可以创建继承自 MicrosoftAzure\Storage\Common\Internal\Middlewares\MiddlewareBase 的自定义中间件。

使用代理

要在 HTTP 请求期间使用代理,设置系统变量 HTTP_PROXY,则将使用代理。

故障排除

错误:无法获取本地颁发者证书

当尝试向 Azure 存储服务发出请求调用时,cURL 无法验证 Microsoft 证书的有效性。您必须按照以下步骤配置 cURL 以在发出 https 请求时使用证书:

  1. cURL 网站 下载 cacert.pem 文件。

  2. 然后执行以下操作之一:

    • 打开您的 php.ini 文件并添加以下行
      curl.cainfo = "<absolute path to cacert.pem>"
      或者
    • 在创建代理时将 cacert 指定到选项中。
      $options["http"] = ["verify" => "<absolute path to cacert.pem>"];
      QueueRestProxy::createQueueService($connectionString, $options);

代码示例

您可以在 示例文件夹 中找到示例。

从 Azure SDK for PHP 迁移

如果您正在使用 Azure SDK for PHP 来访问 Azure 存储服务,我们强烈建议您迁移到本 SDK,以实现更快的问题解决和更快的功能实现。我们正在努力支持最新的服务功能以及改进现有的 API。

目前,Microsoft Azure Storage PHP 客户端库几乎与 Azure SDK for PHP 中存储 blob、表、队列和文件 API 的接口相同。然而,在迁移过程中需要解决一些小的破坏性更改。您可以在 BreakingChanges.md 中找到详细信息。

需要帮助?

如果您在使用提供的代码时遇到问题,请务必查看 Microsoft Azure 开发者论坛github 上的问题

贡献代码或提供反馈

如果您想成为本项目的积极贡献者,请遵循在 Azure 项目贡献指南 中提供的说明。您可以在 CONTRIBUTING.md 中找到有关贡献的更多详细信息。

如果您在库中发现任何错误,请在项目的 问题 部分提交问题。