通过PHP从Google App引擎访问Google Datastore

时间:2017-06-03 07:21:36

标签: php google-app-engine google-cloud-datastore

我对整个GCP平台都很陌生,我试图创建我的第一个网络应用程序,特别是在PHP中。 我已经完成了每个主题,教程等等,但它们对我来说太过分了。

有人可以告诉我使用APP引擎中的PHP查询云数据存储区中的数据的最基本步骤是什么?

这是我的设置: 在我的数据存储区中,有一个条目,它基本上有两个名为name和address的属性,一个APP Engine上的PHP文件,它只会查询数据存储区。

我已为我的应用启用了数据存储区API访问权限。我也部署了它。 但我无法让它发挥作用。

这是我的view.php文件:

<?php
use Google\Cloud\Datastore\DatastoreClient;

# Your Google Cloud Platform project ID
$projectId = '<my project id>';
# Instantiates a client
$datastore = new DatastoreClient(['projectId' => $projectId]);

$query = $datastore->query()
    ->kind('person');

$result = $datastore->runQuery($query);

foreach ($result as $entity) {
        echo 'Entity found: ' . $entity['name'] . PHP_EOL;
    }

?>

注意:我使用这3个文件部署了我的应用程序:

  • 的app.yaml
  • index.php(你好世界页面)
  • view.php

app.yaml内容:

runtime: php55
api_version: 1

handlers:
- url: /
  script: index.php

- url: /index\.html
  script: index.php

- url: /view
  script: view.php

- url: /view\.html
  script: view.php

- url: /.*
  script: not_found.php

2 个答案:

答案 0 :(得分:0)

如果您正在寻找一个非常容易使用的库来从PHP访问数据存储,我会推荐Tom Walder的PHP-GDS https://github.com/tomwalder/php-gds他已经做了很好的工作,使数据存储容易用于PHP,没有它可以有时候是个噩梦。他在他的项目中使用它时不断更新库,我也成功地在我的一些项目中使用它。

该库还有一堆示例,向您展示如何完成您将需要的所有内容。它就像手动或通过编辑器包含库,以及定义数据结构等一样简单。

我还创建了关于如何在我的网站https://buziit.com.au/google-datastore-a-saas-experience/上使用php-gds的教程/讨论,但请注意这有点过时,因为它是在数据存储正式支持PHP之前编写的。主要区别在于定义网关,但Tom的文档是最新的(您需要更改1行)。

你最有可能最好使用由之前感觉到你痛苦的人开发的库,因为Datastore可能很难适应PHP(至少在PHP没有正式支持时)。我现在无法逃离图书馆:)

答案 1 :(得分:0)

您还没有在view.php脚本中包含任何文件。 PHP / GAE需要知道在哪里找到

Google\Cloud\Datastore\DatastoreClient;

一种方法是安装composer并允许composer管理您的所有包含/要求。另一种选择是手动包含您需要使用的所有内容。但是对于Google来说,有许多组件,因此使用composer会更容易。安装composer,需要Google PHP SDK包,然后您需要做的就是在PHP文件的开头包含vendor / autoload.php。