找不到php-gds-session类别LookupRequest

时间:2019-06-17 08:16:50

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

我正在尝试将我的应用迁移到Google App Engine php7.2。主要问题是,会话存储在Memcache中。但是我需要更一致的会议。

我找到了一个很好的Repo,它可以解决问题https://github.com/tomwalder/php-gds-session,但是在安装和包含后会引发错误。

  

错误:找不到类“ google \ appengine \ datastore \ v4 \ LookupRequest”   在GDS \ Gateway \ ProtoBuf-> fetchByKeyPart(/srv/vendor/tomwalder/php-gds/src/GDS/Gateway/ProtoBuf.php:179)   在GDS \ Gateway-> fetchByNames(/srv/vendor/tomwalder/php-gds/src/GDS/Gateway.php:194)   在GDS \ Gateway-> fetchByName(/srv/vendor/tomwalder/php-gds/src/GDS/Gateway.php:122)   在GDS \ Store-> fetchByName(/srv/vendor/tomwalder/php-gds/src/GDS/Store.php:184)   在GDS \ Session \ Handler->读取(/srv/vendor/tomwalder/php-gds-session/src/GDS/Session/Handler.php:176)   在session_start([内部功能])   在GDS \ Session \ Handler :: start(/srv/vendor/tomwalder/php-gds-session/src/GDS/Session/Handler.php:105)   在{main}(/srv/bootstrap.php:12)

有人可以帮忙吗?

我的composer.json:

"require": {
    "php": ">=5.3.0",
    "google/cloud-logging": "^1.16",
    "google/cloud-error-reporting": "^0.14.4",
    "google/cloud-storage": "^1.12",
    "google/cloud-datastore": "^1.9",
    "monolog/monolog": "^1.24",
    "league/flysystem-sftp": "^1.0",
    "aws/aws-sdk-php": "^3.94",
    "vlucas/phpdotenv": "^3.3",
    "php-http/guzzle6-adapter": "^1.1",
    "bugsnag/bugsnag": "^3.16",
    "mailgun/mailgun-php": "~2.0",
    "paragonie/random_compat": "<9.99",
    "tomwalder/php-gds-session": "v1.0.0",
    "google/apiclient": "^2.2"
  }

在bootstrap.php上

// Fix for finding Application-ID on GAE
if(!isset($_SERVER['APPLICATION_ID'])){
   $_SERVER['APPLICATION_ID'] = $_SERVER['GAE_APPLICATION'];
}
GDS\Session\Handler::start();

2 个答案:

答案 0 :(得分:0)

您可以尝试将php-gds-session代码从use GDS\Gateway\ProtoBuf;更改为use GDS\Gateway\RESTv1;和new Store($this->createSchema(), new ProtoBuf());new Store($this->createSchema(), new RESTv1());

答案 1 :(得分:0)

我是PHP-GDS的作者。失败的原因是新的PHP 7.x运行时没有相同类型的ProtoBuf支持。

REST替代方法应该起作用。

我将看一下该库,看看是否可以提供支持REST网关的版本。