Google云平台服务的惯用PHP客户端。
| PHP版本 | 地位 |
|---|---|
查看支持的API和服务列表。
如果您需要支持其他Google API,请查看Google APIS客户端库以获取PHP。
我们建议安装单个组件软件包。可以在Packagist上找到可用软件包的列表。
例如:
$ composer require google/cloud-storage
$ composer require google/cloud-bigquery
$ composer require google/cloud-datastore在本指南中,我们将重点介绍如何使用Google Cloud Cli( gcloud )配置您的客户端以进行本地开发。
gcloud进行身份验证以生成凭据文件。为了生成我们所需的凭据文件,我们需要先对GCLOUD进行身份验证。根据您的平台,安装的处理方式不同。这是一个可帮助您设置Google Cloud CLI的链接:
https://cloud.google.com/sdk/docs/install
gcloud命令进行身份验证安装了Google Cloud CLI工具后,我们需要通过gcloud进行身份验证:
$ gcloud init
$ gcloud auth application-default login这将在您的系统中创建一个本地文件,我们的客户端身份验证库将阅读,以便使用这些凭据向API提出请求。该文件位于不同位置,具体取决于您的系统。
视窗:
%APPDATA%gcloudapplication_default_credentials.json
Linux和MacOS:
$HOME/.config/gcloud/application_default_credentials.json
要了解有关身份验证的更多信息,请参见Authentication.md
使用作曲家安装Google Translate客户库
composer install google/cloud-translate注意:在此示例中,我们使用的是Google Translate客户库库。检查完整的软件包列表以查找所需的库。
现在,我们已经对客户端库进行了认证并安装了客户库,我们可以实例化一个客户端,该客户端将检测GCLOUD CLI创建的JSON文件并使用它来验证您的请求:
require_once ' vendor/autoload.php ' ;
use Google Cloud Translate V3 Client TranslationServiceClient ;
use Google Cloud Translate V3 TranslateTextRequest ;
// Instantiating the client gathers the credentials from the `application_default_credentials.json`
$ client = new TranslationServiceClient ([]);
$ request = new TranslateTextRequest ();
$ request -> setParent ( ' projects/<YOUR_PROJECT_ID> ' );
$ request -> setTargetLanguageCode ( ' en-US ' );
$ request -> setContents ([ 'こんにちは' ]);
// The request will contain the authentication token based on the default credentials file
$ response = $ client -> translateText ( $ request );
var_dump ( $ response -> getTranslations ()[ 0 ]);
// {
// [ "translatedText" ] = >
// string ( 5 ) "Hello"
// [ "detectedLanguageCode" ] = >
// string ( 2 ) "ja"
// }该快速启动是考虑到本地发展的。部署项目的步骤取决于您使用的环境。在这里,我们提供了一些有关如何开始部署项目的基本指示:
有关获取服务帐户凭据的更多信息,请参阅我们的身份验证指南。设置GOOGLE_APPLICATION_CREDENTIALS环境变量指向您的凭据文件。
一些客户接受指向凭据文件的keyFilePath和keyFile配置选项:
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环境变量。
请参阅我们的调试指南以获取有关调试工具的更多信息。
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
]);该库在GoogleAuthCacheSysVCacheItemPool上提供了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 8.0及更高版本。
该库遵循语义版本控制。
请注意,目前正在积极开发。任何发行版本均为0.XY的任何版本都会随时进行向后不兼容的更改。
GA :定义在GA质量水平的库是稳定的,不会在任何次要或补丁发行版中引入向后不兼容的更改。我们将解决优先级最高的问题和请求。请注意,对于包括生成客户的任何组件,GA保证仅适用于与稳定服务互动的客户。例如,在托管V1和V1BETA1生成的客户端的组件中,GA保证仅适用于V1客户端,因为它与之交互的服务被认为是稳定的。
Beta :预计以Beta质量级别定义的图书馆大多是稳定的,我们正在努力为其发布候选人努力。我们将以更高的优先级解决问题和请求。
总是欢迎和鼓励对该图书馆的贡献。
有关如何入门的更多信息,请参见贡献。
该存储库不是官方的支持渠道。如果您有支持问题,请通过普通的Google支持渠道提交支持请求,或在stackoverflow等论坛上发布问题。
Apache 2.0-有关更多信息,请参见许可证。