170 похожих чатов

Конишуа всем! Скажите пожалуйста, а кто-нибудь здесь сталкивался с генерацией

PHP кода по protobuf файлу для работы с gRPC?

11 ответов

19 просмотров

сталкивался

Timur-Ahmedov Автор вопроса
Igor Borisov
сталкивался

Не мог, бы, пожалуйста, уточнить, как именно генерил клиента? Я скормил protobuf-файл тулзе protoc (https://github.com/protocolbuffers/protobuf) - как будто все сгенерилось, но в классе GPBMetadata вызывается $pool->internalAddGeneratedFile() в качестве аргумента передается какая-то странная строка, больше похожая на бинарник. Смотрю примеры в инете - у всех там передается 16-ричная строка, обернутая в hex2bin (https://github.com/protocolbuffers/protobuf-php/blob/master/src/GPBMetadata/Google/Protobuf/Any.php). Вот я что-то не пойму, я как-то неправильно код сгенерил? У меня дальше при его вызове все падает с ошибкой Error occurred during parsing: Fail to push limit. - подозреваю, что из-за этого

Timur Ahmedov
Не мог, бы, пожалуйста, уточнить, как именно генер...

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

Timur Ahmedov
Не мог, бы, пожалуйста, уточнить, как именно генер...

я не помню что бы как то заморачивался с такими вещами, у тебя должны сгенерироваться классы по прото файлу, дальше просто их юзать надо

Timur-Ahmedov Автор вопроса
Igor Borisov
не совсем понял, у тебя не работает клиент ? моешь...

В сервисе есть метод getUserDataByID(). У меня появились классы getUserDataByIDRequest и getUserDataByIDResponse. Я вызываю getUserDataByIDResponse->getData() и получаю Error occurred during parsing: Fail to push limit. Хотя, есть у меня подозрение, что я не так его вызываю

Timur Ahmedov
В сервисе есть метод getUserDataByID(). У меня поя...

у меня это выглядит примерно так list($response, $status) = $service->getUserDataByID()->wait() то есть я создаю сначало клиента, потом вызываю у него метод что такое getUserDataByIDRequest и getUserDataByIDResponse я не совсем понял

Timur Ahmedov
В сервисе есть метод getUserDataByID(). У меня поя...

если $status === 0 то $response это заполненый класс, достаточно вызывать те же свойства которые ты прописал в прото файле что бы получить значение

Timur-Ahmedov Автор вопроса
Igor Borisov
То есть гетеры не свойства)

Вроде нащупал проблему. У меня клиент в принципе не сгенерился, и я не тот класс дергаю. Вот тут об этом сказано: https://github.com/grpc/grpc/issues/22108 - дока с примером PHP устарела. Рекомендуют откатить protoc на более старую версию или использовать bazel

Timur-Ahmedov Автор вопроса
Igor Borisov
у меня это выглядит примерно так list($response, ...

Точно, все получилось нормально сделать, откатившись на старую версию protoc, как указанно в ссылке. С ней все методы сгенерировались, как надо. Спасибо большое за помощь :)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта