shopforward/google-cloud

Google Cloud 客户端库

0.254.1 2024-08-19 08:19 UTC

This package is not auto-updated.

Last update: 2024-09-17 07:00:57 UTC


README

针对 Google Cloud Platform 服务的 PHP 风格客户端。

CI 状态

查看支持的 API 和服务的列表 这里

如果您需要其他 Google API 的支持,请查看 Google APIs 客户端库 for PHP

快速入门

我们建议安装单个组件包。可在 Packagist 上找到可用包的列表。

例如

$ composer require google/cloud-storage
$ composer require google/cloud-bigquery
$ composer require google/cloud-datastore

您随后可以包含自动加载器并创建客户端

require 'vendor/autoload.php';

use Google\Cloud\Storage\StorageClient;

$storage = new StorageClient();

$bucket = $storage->bucket('my_bucket');

// Upload a file to the bucket.
$bucket->upload(
    fopen('/data/file.txt', 'r')
);

// Download and store an object from the bucket locally.
$object = $bucket->object('file_backup.txt');
$object->downloadToFile('/data/file_backup.txt');

身份验证

身份验证由客户端库自动处理。您只需在创建客户端时提供身份验证详情。通常,身份验证是通过服务帐户完成的。有关获取服务帐户凭证的更多信息,请参阅我们的 身份验证指南

一旦您获得凭证文件,即可用于创建经过身份验证的客户端。

require 'vendor/autoload.php';

use Google\Cloud\Storage\StorageClient;

// Authenticate using a keyfile path
$cloud = new StorageClient([
    'keyFilePath' => 'path/to/keyfile.json'
]);

// Authenticate using keyfile data
$cloud = new StorageClient([
    'keyFile' => json_decode(file_get_contents('/path/to/keyfile.json'), true)
]);

如果您不希望在应用程序代码中嵌入身份验证信息,您还可以使用 应用程序默认凭证

require 'vendor/autoload.php';

use Google\Cloud\Storage\StorageClient;

putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/keyfile.json');

$cloud = new StorageClient();

您可以在服务器配置中设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量。

gRPC 和 Protobuf

Google Cloud PHP 中的许多客户端提供对 gRPC 的支持,无论是作为选项还是必需项。gRPC 是 Google 创建的高性能 RPC 框架。要在 PHP 中使用 gRPC,您必须在您的服务器上安装 gRPC PHP 扩展。虽然不是必需的,但建议在生产环境中使用 gRPC 时也安装 protobuf 扩展。

$ pecl install grpc
$ pecl install protobuf

缓存访问令牌

默认情况下,库将使用简单的内存缓存实现,但是您可以通过向所需客户端传递 PSR-6 缓存实现来覆盖此行为。

以下示例利用了 Symfony 的缓存组件

require 'vendor/autoload.php';

use Google\Cloud\Storage\StorageClient;
use Symfony\Component\Cache\Adapter\ArrayAdapter;

// Please take the proper precautions when storing your access tokens in a cache no matter the implementation.
$cache = new ArrayAdapter();

$storage = new StorageClient([
    'authCache' => $cache
]);

此库提供具有 Google\Auth\Cache\SysVCacheItemPool 的 SystemV 共享内存的 PSR-6 实现。此实现仅在 *nix 机器上可用,但它是最快的实现之一,并且您可以在多个进程之间共享缓存。以下示例说明了如何使用它。

require __DIR__ . '/vendor/autoload.php';

use Google\Cloud\Spanner\SpannerClient;
use Google\Auth\Cache\SysVCacheItemPool;

$cache = new SysVCacheItemPool();

$spanner = new SpannerClient([
    'authCache' => $cache
]);

支持的 PHP 版本

所有客户端库都支持 PHP 8.0 及以上版本。

版本控制

此库遵循 语义版本控制

请注意,它目前正在积极开发中。任何版本号为 0.x.y 的发布版本都可能随时发生向后不兼容的更改。

GA:在GA质量级别定义的库是稳定的,不会在任何一个次要版本或补丁版本中引入不向后兼容的更改。我们将以最高优先级解决问题和请求。请注意,对于包含生成客户端的任何组件,GA保证仅适用于与稳定服务交互的客户端。例如,在一个托管V1和V1beta1生成客户端的组件中,GA保证仅适用于V1客户端,因为它与之交互的服务被视为稳定。

Beta:在Beta质量级别定义的库预计将是大多数稳定的,我们正在努力使其成为发布候选版本。我们将以更高的优先级解决问题和请求。

贡献

对这个库的贡献总是受欢迎并被高度鼓励。

有关如何开始的更多信息,请参阅CONTRIBUTING

此存储库不是官方支持渠道。如果您有支持问题,请通过正常的Google支持渠道提交支持请求,或在如StackOverflow之类的论坛上发帖提问。

许可证

Apache 2.0 - 更多信息请参阅LICENSE