我正在尝试从 AppEngine 上的 PHP 进行 BigQuery 调用。是否假设 BigQuery PHP 库必须包含在部署文件中,并且它们在运行时中不隐式可用?简单的实例化示例:<?phpuse Google\Cloud\BigQuery\BigQueryClient;$bigQuery = new BigQueryClient();?>然后不可避免的错误:[error] 20#20: *2 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Class 'Google\Cloud\BigQuery\BigQueryClient' not found in /srv/index.php:5 Stack trace: #0 {main} thrown in /srv/index.php on line 3" while reading response header from upstream, client: , server: , request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/tmp/google-config/php-fpm.sock:"这些库是隐含的期望是否过于假设?编辑:这是composer.json部署目录中的文件(我非常困惑,因为app.yaml应该是库的声明位置,不是吗?)👇我什至不知道如何指定版本或只是一般的 BQ。{ "require": { "google/cloud": "^0.99.0" }}
1 回答
千万里不及你
TA贡献1784条经验 获得超9个赞
是否假设 BigQuery PHP 库必须包含在部署文件中,并且它们在运行时中不隐式可用?
没错,您应该使用BigQuery PHP 客户端库。
请参阅Google Cloud Platform 文档的这篇文章中有关其安装和使用的信息(切换到“PHP”选项卡以获取代码示例)。
编辑:
我按照 GCP教程复制了您的情况,将一个简单的 PHP HelloWorld 应用程序部署到 Google App Engine。我修改了composer.json文件,使其与您的文件匹配,并使用相同的代码行来包含 BigQuery 库。
我可以通过要求 Composer 的 autoloader来解决这个问题。这可以通过在index.php文件中添加以下行来实现:
require 'vendor/autoload.php';
这是我的composer.json文件:
{
"require": {
"google/cloud": "^0.99.0"
}
}
这是我的index.php文件:
<?php
require 'vendor/autoload.php';
use Google\Cloud\BigQuery\BigQueryClient;
$bigQuery = new BigQueryClient();
echo "Hello World!";
?>
让我知道它是否有帮助。
- 1 回答
- 0 关注
- 114 浏览
添加回答
举报
0/150
提交
取消