首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >最近发布的GAE PHP运行时可以访问本地GAE数据存储吗?

最近发布的GAE PHP运行时可以访问本地GAE数据存储吗?
EN

Stack Overflow用户
提问于 2013-05-17 11:46:14
回答 4查看 3.8K关注 0票数 3

Google刚刚宣布支持App Engine的PHP运行时。我有一个使用Java运行时开发的应用程序,它利用了原生app Engine数据存储。它目前的功能是作为移动客户端的后端。我们正在研究开发一个单独的web前端,它需要连接这个数据存储。从事这项工作的开发人员更喜欢用PHP进行开发,所以发布这个消息的时机很有趣。

然而,浏览文档时,我只在“存储数据”下看到对Google Cloud SQLGoogle Cloud Storage的引用。是否可以使用PHP运行时连接原生App Engine数据存储?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-17 12:00:47

在I/O上,我们还宣布了Cloud Datastore,这是目前您应该如何考虑从PHP应用程序访问数据存储的方式。

票数 4
EN

Stack Overflow用户

发布于 2013-08-26 15:11:28

  1. 您需要为您的项目启用谷歌云数据存储,请参阅https://developers.google.com/datastore/docs/activate#google_cloud_datastore_for_an_existing_app_engine_application

注意:您不需要启用计算引擎

确保在管理控制台上的应用程序设置云集成部分显示‘项目已成功创建。有关如何在AppEngine https://gaeforphp-blog.appspot.com/2013/08/06/using-the-google-apis-client-library-for-php-with-app-engine/

  • 上获取和使用Google API客户端库的更多说明,请参阅基础部分。请参阅所附的查找解码实体键的工作示例: Guestbook: name=default_guestbook > Greeting: id=5733953138851840

代码语言:javascript
运行
复制
<?php

const SERVICE_ACCOUNT_NAME = 'your-service-account-id@developer.gserviceaccount.com';


require_once 'libraries/google-api-php-client/src/Google_Client.php';
require_once 'libraries/google-api-php-client/src/contrib/Google_DatastoreService.php';

$client = new Google_Client();
$client->setApplicationName("your_app_id");

$key = file_get_contents('storage/your-hashed-keyid-privatekey.p12');
$client->setAssertionCredentials(
    new Google_AssertionCredentials(
        SERVICE_ACCOUNT_NAME,
        array('https://www.googleapis.com/auth/userinfo.email',
              'https://www.googleapis.com/auth/datastore'),
        $key)
);

$datastore = new Google_DatastoreService($client);

$lookup = new Google_LookupRequest();

$path1 = new Google_KeyPathElement();
$path1->setKind('Guestbook');
$path1->setName('default_guestbook');

$path2 = new Google_KeyPathElement();
$path2->setKind('Greeting');
# this is just an example check a real entity id in your datastore
# if you do not have ancestor entity you only need one (path1) element
$path2->setId('5733953138851840');

$key = new Google_Key();
$key->setPath([$path1,$path2]);

$keyArray = array();
$keyArray[] = $key;
$lookup->setKeys($keyArray);

if(array_key_exists('catchError', $_GET)){
    try{
        $result = $datastore->datasets->lookup('your_project_name', $lookup);
        var_dump($result);
    }
    catch(Google_ServiceException $e){
        echo "<pre>";
        var_dump($e);
        echo "</pre>";
    }
}
else{
    $result = $datastore->datasets->lookup('your_project_name', $lookup);
    var_dump($result);
}
票数 3
EN

Stack Overflow用户

发布于 2015-02-18 08:03:28

这个库是最近(由我)发布的-我希望它能帮助人们找到这个帖子。

它使得从PHP (在App Engine上或不在App Engine上)使用数据存储变得更加容易。

https://github.com/tomwalder/php-gds

享受吧!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16601074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档