【问题标题】:Accessing Google Datastore from Google App engine via PHP通过 PHP 从 Google App 引擎访问 Google Datastore
【发布时间】:2017-06-03 07:21:35
【问题描述】:

我对整个 GCP 平台非常陌生,我正在尝试创建我的第一个 Web 应用程序,特别是在 PHP 中。 我已经浏览了每一个线程、教程等,但它们离我太远了。

有人可以告诉我使用 APP Engine 中的 PHP 查询 Cloud Datastore 中的数据的最基本步骤是什么吗?

这是我的设置: 在我的 Datastore 中,有 1 个条目,它基本上有 2 个属性,称为 name 和 address,一个 APP Engine 上的 PHP 文件,它只会查询 datastore。

我已为我的应用启用 Datastore 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

【问题讨论】:

  • 您可以发布您的app.yaml 文件吗?
  • 也启用Stackdriver Logging,有时很有帮助
  • 这是日志给我的信息:/base/data/home/apps/d~el-stock-tracker/20170603t154319.401708132184198572/ 中找不到类 'Google\Cloud\Datastore\DatastoreClient'第 9 行的 view.php
  • 当我尝试研究我的主题时,我不断地碰到“作曲家”。我需要在我的 APP Engine 上安装或运行 composer 吗?

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


【解决方案1】:

如果您正在寻找一个真正易于使用的库来从 PHP 访问 Datastore,我会推荐 Tom Walder https://github.com/tomwalder/php-gds 的 PHP-GDS,他在使 PHP 易于使用 Datastore 方面做得很好,没有它可以是一个有时是噩梦。当他在他的项目中使用它时,他会不断更新这个库,我也在我的一些项目中成功地使用了它。

该库还包含大量示例,向您展示如何完成几乎所有您需要的操作。它就像手动或通过 Composer 包含库一样简单,并定义您的数据结构等。

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

您最好使用由以前曾为您感到痛苦的人开发的库,因为 Datastore 可能很难适合 PHP(至少在 PHP 没有正式支持的时候)。我现在不能离开图书馆了 :)

【讨论】:

  • 只需重新阅读问题的第一行。我的博客还讨论了如何使用 PHP 开始使用 GAE,并展示了我如何构建我的项目等。可能对你有一些用处,但我不能保证这都会被视为最佳实践!我建议从 Post #1 buziit.com.au/blog/a-saas-experience 开始
【解决方案2】:

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

Google\Cloud\Datastore\DatastoreClient;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 2014-04-11
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    相关资源
    最近更新 更多