为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕无忌1623718 2022-01-08 17:31:54
我正在尝试从 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!";

?>

让我知道它是否有帮助。


查看完整回答
反对 回复 2022-01-08
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信