Я пытаюсь создать новый набор данных в 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 Google и не нашел его.
Это API я скачал —
https://github.com/google/google-api-php-client
В чем может быть проблема?
Вам нужно включить файл автозагрузки, а не устанавливать путь включения. Есть два способа сделать это. Первое, что мы рекомендуем, это установить эту библиотеку через композитор:
После установки 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 нашего пакета:
В вашем скрипте требуется автозагрузчик из каталога vendor:
require_once '/path/to/google-api-php-client-2.0.0-RC7/vendor/autoload.php`;
Других решений пока нет …