我正在尝试在Google Bigquery中创建一个新的数据集,同时使用Google App Engine作为服务器。
这是我使用的代码-
set_include_path("Google/" . PATH_SEPARATOR . get_include_path());
require_once 'Service.php';
require_once 'Client.php';
require_once 'Service/Resource.php';
require_once 'Model.php';
require_once 'Collection.php';
require_once 'Service/Bigquery.php';
$project_id = "test";
$dataset_id = "TestDataset";
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope(Google_Service_Bigquery::BIGQUERY);
$bigquery = new Google_Service_Bigquery($client);
$ConfigureDataset = new Google_Service_Bigquery_DatasetReference();
$ConfigureDataset->setProjectId($project_id);
$ConfigureDataset->setDatasetId($dataset_id);
$dataset = new Google_Service_Bigquery_Dataset();
$dataset->setDatasetReference($ConfigureDataset);
$dataset->setDescription($dataset_id);
$options = array();
$response = $bigquery->datasets->insert($project_id,$dataset,$options);
我得到的错误是-
Fatal error: Class 'Monolog'Logger' not found in /base/data/home/apps/1.392457623149040913/Google/Client.php on line 963
在客户端链接963上,我发现了这个-
protected function createDefaultLogger()
{
$logger = new Logger('google-api-php-client');
$logger->pushHandler(new MonologStreamHandler('php://stderr', Logger::NOTICE));
return $logger;
}
然后我在谷歌api上找了这个类,但没有找到。
这是我下载的api-
https://github.com/google/google-api-php-client
问题出在哪里?
您需要包含自动加载文件,而不是设置包含路径。有两种方法可以做到这一点。第一个,我们建议,是通过composer:安装这个库
-
安装composer后,在项目的根目录中运行以下命令,然后要求您的供应商自动加载:
$ cd /path/to/project $ composer require "google/apiclient:2.0.0@RC"
-
在您的项目中,需要自动加载文件,而不是使用
set_include_path
业务:require_once '/path/to/project/vendor/autoload.php`;
另一种方法(更符合您尝试做的事情)是下载一个具有所有依赖项的包,并需要JUST我们的包的自动加载器:
- 下载文件google-api-php-client-2.0.0-RC7
-
在您的脚本中,需要来自供应商目录的自动加载器:
require_once '/path/to/google-api-php-client-2.0.0-RC7/vendor/autoload.php`;