PHP protobuf 错误 - encode/decode 的未定义方法

PHP protobuf error - Undefined method for encode/decode

我正在尝试使用 https://github.com/google/protobuf/tree/master/php 在 PHP 中了解 Protobuf。目前我陷入了一个错误。

我安装protobuf的步骤:

下面是我的代码:

protoc 命令产生了两个文件,APIReq.php 和 GPBMetadata/MsgFormat。php

之后,我在生成的 PHP 文件中添加了 require_once __DIR__ . '/vendor/autoload.php';require_once __DIR__ . '/GPBMetadata/MsgFormat.php'; 因为当我 运行 php APIReq.php 它想出了

    PHP Fatal error:  Class 'Google\Protobuf\Internal\Message' not found in /var/www/html/testing/APIReq.php on line 13

添加这些行后,错误消失了,所以我假设这两行都解决了问题

当我运行代码PHP时,它returns错误信息:

PHP Fatal error:  Call to undefined method APIReq::encode()

我该如何解决这个问题?

编辑:也使用 protobuf 3.3.0 进行了尝试,结果相同。

编码和解码在我追踪到的代码库中不存在。

此更改是在 3.3.0 中引入的

//to encode message 
$data = $param->serializeToString();

//to decode message
$param2 = new APIReq();
$param2->mergeFromString($data);