3

我正在开发一个带有协议缓冲区的项目,在我编译了一个 proto 文件之后,我似乎无法包含它,也没有运行它,因为它一直给我这个确切的错误: PHP Fatal error: Class 'Google\Protobuf\Internal\Message' not found in /app/generated_files/message.php on line 13

message.php我有一个文件自动生成的.proto文件,它包括Google\Protobuf\Internal\Message.

在阅读protobuf github 问题时,我发现一个人也有同样的问题,他认为这是作曲家的错。但是在我的情况下,这不是问题,因为我没有使用作曲家。

我使用 pecl 来安装协议缓冲区,并且我的库protobuf.so位于/etc/php5/apache2/XXXXXXXXX. 我还在extension=protobuf.sophp.ini的最后一行添加了。

请记住,我对所有事情都使用 docker,因此它可能有所不同,但我仍然怀疑。

4

2 回答 2

1

万一有人在这里遇到同样的问题:您只需将 Componser 自动加载器添加到您的文件中include_once './vendor/autoload.php';(根据需要更改路径)

于 2018-12-11T09:26:41.763 回答
0

我遇到了同样的问题,但对我来说原因不同:Git 不知何故弄乱了文件夹的大小写,导致文件路径转换错误。一旦我修复了外壳(供应商文件夹中的 [...]/src/Google/Protobuf 而不是 [...]/src/google/protobuf )

于 2019-08-18T21:13:05.537 回答