猿问

AppEngine BigQuery PHP 库在运行时不隐含?

我正在尝试从 AppEngine 上的 PHP 进行 BigQuery 调用。是否假设 BigQuery PHP 库必须包含在部署文件中,并且它们在运行时中不隐式可用?


简单的实例化示例:


<?php

use 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"

    }

}


慕无忌1623718
浏览 115回答 1
1回答

千万里不及你

是否假设 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文件:{&nbsp; &nbsp; "require": {&nbsp; &nbsp; &nbsp; &nbsp; "google/cloud": "^0.99.0"&nbsp; &nbsp; }}这是我的index.php文件:<?php&nbsp; require 'vendor/autoload.php';&nbsp; use Google\Cloud\BigQuery\BigQueryClient;&nbsp; $bigQuery = new BigQueryClient();&nbsp; echo "Hello World!";?>让我知道它是否有帮助。
随时随地看视频慕课网APP
我要回答