Ошибка композитора GRPC Spanner Google Cloud с переполнением стека

Я использую PHP, чтобы попытаться использовать Google Cloud Spanner. Я уже сделал gCloud настройки и все, и это правильно. Теперь мне нужно сделать соединение через PHP сделать CRUD с базой данных, которая находится в Spanner, но код ниже всегда возвращает ошибку:

Неустранимая ошибка PHP: неопределенная константа ‘Grpc \ STATUS_UNKNOWN’ в
/xxx/xxxx/www/vendor/google/cloud-spanner/Connection/Grpc.php на линии
129

Код у меня есть:

<?php
require 'vendor/autoload.php';

use Google\Cloud\Spanner\SpannerClient;

/* Error start here */
$spanner = new SpannerClient([
'projectId' => 'my-project-id'
]);

$db = $spanner->connect('instance', 'database');

$userQuery = $db->execute('SELECT * FROM usuario WHERE login = @login', [
'parameters' => [
'login' => 'devteam'
]
]);

$user = $userQuery->rows()->current();

echo 'Hello ' . $user['login'];

Требования, которые я использую в композиторе:

"require": {
"google/cloud": "^0.32.1",
"google/cloud-spanner": "^0.2.2"}

Я заметил, что если я вхожу через браузер, ошибка, представленная выше, продолжает появляться. Если я запускаю команду php teste.php на терминале он запускает скрипт правильно, т.е. терминал работает, а браузер — нет.

2

Решение

Клиентский ключ Google Cloud PHP только для gRPC. Это означает, что для его использования вам потребуется установить расширение gRPC PHP:

pecl install grpc

Как только вы это сделали, добавьте google/proto-client-php а также google/gax на ваш composer.json и запустите composer update, После того, как это будет сделано, ошибка будет устранена.

2

Другие решения

Для тех, кто хочет получить более подробные инструкции, см. эта страница для установки и включения gRPC для PHP!

1

Поскольку вы упомянули, что он работает на CLI, но не на браузере, я могу сказать, что вам нужно включить расширение grpc в конфигурации вашего веб-сервера php.

Например. добавлять
extension=grpc.so на ваш /etc/php/5.6/apache2/php.ini

0
По вопросам рекламы [email protected]