microsoft/azure-storage-table 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

microsoft/azure-storage-table

Composer 安装命令:

composer require microsoft/azure-storage-table

包简介

This project provides a set of PHP client libraries that make it easy to access Microsoft Azure Storage Table APIs.

README 文档

README

This project provides a PHP client library that makes it easy to access Microsoft Azure Storage table services. For documentation on how to host PHP applications on Microsoft Azure, please see the Microsoft Azure PHP Developer Center.

Latest Stable Version

Note

  • This repository is currently used for releasing only, please go to azure-storage-php for submitting issues or contribution.
  • If you are looking for the Service Bus, Service Runtime, Service Management or Media Services libraries, please visit https://github.com/Azure/azure-sdk-for-php.
  • If you need big file (larger than 2GB) or 64-bit integer support, please install PHP 7 64-bit version.

Features

  • Tables
    • create and delete tables
    • create, query, insert, update, merge, and delete entities
    • batch operations

Please check details on API reference documents.

Getting Started

Minimum Requirements

  • PHP 5.6 or above

  • See composer.json for dependencies

  • Required extension for PHP:

    • php_fileinfo.dll
    • php_mbstring.dll
    • php_openssl.dll
    • php_xsl.dll
  • Recommended extension for PHP:

    • php_curl.dll

Download Source Code

To get the source code from GitHub, type

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

Install via Composer

  1. Create a file named composer.json in the root of your project and add the following code to it:
{
  "require": {
    "microsoft/azure-storage-table": "*"
  }
}
  1. Download composer.phar in your project root.

  2. Open a command prompt and execute this in your project root

php composer.phar install

Usage

There are four basic steps that have to be performed before you can make a call to any Microsoft Azure Storage API when using the libraries.

  • First, include the autoloader script:
require_once "vendor/autoload.php";
  • Include the namespaces you are going to use.

    To create any Microsoft Azure service client you need to use the rest proxy classes, such as TableRestProxy class:

use MicrosoftAzure\Storage\Table\TableRestProxy;

To process exceptions you need:

use MicrosoftAzure\Storage\Common\ServiceException;
  • To instantiate the service client you will also need a valid connection string. The format is:
DefaultEndpointsProtocol=[http|https];AccountName=[yourAccount];AccountKey=[yourKey]

or:

TableEndpoint=[myTableEndpoint];SharedAccessSignature=[sasToken]
  • Instantiate a client object - a wrapper around the available calls for the given service.
$tableClient = TableRestProxy::createTableService($connectionString);

Using Middlewares

To specify the middlewares, user have to create an array with middlewares and put it in the $requestOptions with key 'middlewares'. The sequence of the array will affect the sequence in which the middleware is invoked. The $requestOptions can usually be set in the options of an API call, such as MicrosoftAzure\Storage\Table\Models\QueryTablesOptions.

The user can push the middleware into the array with key 'middlewares' in services' $_options instead when creating them if the middleware is to be applied to each of the API call for a rest proxy. These middlewares will always be invoked after the middlewares in the $requestOptions. e.g.:

$tableClient = TableRestProxy::createTableService(
    $connectionString,
    $optionsWithMiddlewares
);

Each of the middleware should be either an instance of a sub-class that implements MicrosoftAzure\Storage\Common\Internal\IMiddleware, or a callable that follows the Guzzle middleware implementation convention.

User can create self-defined middleware that inherits from MicrosoftAzure\Storage\Common\Internal\Middlewares\MiddlewareBase.

Using proxies

To use proxies during HTTP requests, set system variable HTTP_PROXY and the proxy will be used.

Troubleshooting

Error: Unable to get local issuer certificate

cURL can't verify the validity of Microsoft certificate when trying to issue a request call to Azure Storage Services. You must configure cURL to use a certificate when issuing https requests by the following steps:

  1. Download the cacert.pem file from cURL site.

  2. Then either:

    • Open your php.ini file and add the following line:
      curl.cainfo = "<absolute path to cacert.pem>"
      OR
    • Point to the cacert in the options when creating the Proxy.
      $options["http"] = ["verify" => "<absolute path to cacert.pem>"];
      TableRestProxy::createTableService($connectionString, $options);

Code samples

You can find samples in the samples folder

Migrate from Azure SDK for PHP

If you are using Azure SDK for PHP to access Azure Storage Service, we highly recommend you to migrate to this SDK for faster issue resolution and quicker feature implementation. We are working on supporting the latest service features as well as improvement on existing APIs.

For now, Microsoft Azure Storage PHP client libraries share almost the same interface as the storage blobs, tables, queues and files APIs in Azure SDK for PHP. However, there are some minor breaking changes need to be addressed during your migration. You can find the details in BreakingChanges.md.

Need Help?

Be sure to check out the Microsoft Azure Developer Forums on Stack Overflow and github issues if you have trouble with the provided code.

Contribute Code or Provide Feedback

If you would like to become an active contributor to this project please follow the instructions provided in Azure Projects Contribution Guidelines. You can find more details for contributing in the CONTRIBUTING.md.

If you encounter any bugs with the library please file an issue in the Issues section of the project.

microsoft/azure-storage-table 适用场景与选型建议

microsoft/azure-storage-table 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.95M 次下载、GitHub Stars 达 9, 最近一次更新时间为 2018 年 01 月 11 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「php」 「storage」 「sdk」 「azure」 「table」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 microsoft/azure-storage-table 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 microsoft/azure-storage-table 我们能提供哪些服务?
定制开发 / 二次开发

基于 microsoft/azure-storage-table 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 1.95M
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 9
  • 点击次数: 27
  • 依赖项目数: 7
  • 推荐数: 0

GitHub 信息

  • Stars: 9
  • Watchers: 6
  • Forks: 10
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-01-11