google/cloud

Google Cloud 客户端库

v0.259.0 2024-09-13 22:45 UTC

This package is auto-updated.

Last update: 2024-09-21 05:02:00 UTC


README

Google Cloud Platform服务的PHP语法的idiomatic客户端。

CI状态

查看支持的API和服务列表

如果您需要其他Google API的支持,请查看Google APIs Client Library 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处的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