подключение и запрос Google Cloud Platform - PHP - PullRequest
0 голосов
/ 28 мая 2018

Я занимаюсь разработкой своего хранилища данных на GCP, но у меня есть 2 вопроса, я новичок и не знаю об их API.Моя среда PHP, и я написал эту инструкцию:

$datastore = new DatastoreClient(['keyFilePath' => 'myKey']);

Как я знаю, что соединение готово?Я искал, например:

if( $datastore->status_code === 200)

Где 200 код готов, например.Этот вопрос влияет на второй вопрос.Когда я пытаюсь получить некоторую информацию из хранилища данных, ответ Google очень, очень, очень большой, если я наберу var_dump($datastore), и я потерялся, где мои данные?В ответе содержится информация о часах, геолокации, браузере и т. Д. Это мой код:

    $query = $datastore->query();
    $query->kind('foo');
    $result = $datastore->runQuery( $query );
    print_r( $result );

Где foo в качестве параметра - мой вид в хранилище данных.Как я уже сказал, ответ - очень большой объект. Как я могу разобрать его в формате JSON?

1 Ответ

0 голосов
/ 29 мая 2018

Если вы не получаете никаких ошибок при совершении вызовов с вашим экземпляром DatastoreClient, вы успешно прошли аутентификацию.Нет отдельного метода «тестового соединения», кроме выполнения вызовов API.

Ответ от runQuery не может быть напрямую сериализован.Поскольку запрос может вернуть большой набор результатов, результат может быть разбит на несколько страниц.Google Cloud PHP справится с этим за вас, но делает ответ немного сложнее.

Если вы хотите json сериализовать ответ, вы можете сделать это, используя iterator_to_array():

$json = json_encode(iterator_to_array($result));

При использовании этого вы должны быть осторожны, поскольку может привести к большому количеству вызовов API, если ваш запрос соответствует очень большому набору результатов.

Если вам нужно выполнить какое-либо отображение или обработку результатов запроса, просто выполните итерации по $result, используя foreach:

foreach ($result as $row) {
    // Each `$row` will be an instance of `Google\Cloud\Datastore\EntityInterface`.
    print_r($row);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...