Разобрать .proto в php класс

1

В настоящее время я пытаюсь проанализировать файл.proto в php. Я пытался использовать DrSlump Protobuf Parser, но либо мои знания слишком малы, либо у моего Godaddy Shared Hosting что-то не хватает. Я пробовал все с моими знаниями без успеха, чтобы получить то, что хочу.

Итак, мой вопрос, есть ли пошаговое руководство о том, как это сделать?

У меня прототип установлен с SSH, а также установлен

pear channel-discover pear.pollinimini.net
pear install drslump/Protobuf-beta

Текущая проблема:

root@v0071:~/Root/var/www/xxx.com/web/test# protoc-gen-php
Protobuf-PHP 0.9.4 by Ivan -DrSlump- Montes

Error: You must provide at least 1 argument.

Type "/usr/bin/protoc-gen-php --help" to get help.
root@v0071:~/Root/var/www/xxx.com/web/test# php protoc-gen-php.php LandData.proto
Protobuf-PHP @package_version@ by Ivan -DrSlump- Montes

/var/www/clients/client1/web10/web/test/LandData.proto: 
File does not reside within any path specified using --proto_path (or -I).    
You must specify a --proto_path which encompasses this file.  
Note that the proto_path must be an exact prefix of 
the .proto file names --protoc is too dumb to figure out when two 
paths (e.g. absolute and relative) are equivalent 
(it harder than you think).

ERROR: protoc exited with an error (1) when executed with: 
protoc \--plugin=protoc-gen-php='/var/www/clients/client1/
web10/web/test/protoc-gen-php.php' \

--proto_path='/var/www/clients/client1/web10/web/test/
library/DrSlump/Protobuf/Compiler/protos' \--php_out=':./' \
'/var/www/clients/client1/web10/web/test/LandData.proto'
Теги:
protocol-buffers
parsing

1 ответ

0

Хотя вопрос старый, я подумал о том, чтобы ответить, и, возможно, кто-то найдет его полезным.

Сначала я бы рекомендовал вам использовать официальную библиотеку из репозитория Protobuf github.

Поэтому я понимаю, что вы пытаетесь генерировать PHP-кланы из прото файла. Для этого вы должны сначала установить компилятор буфера протокола (protoc). В конце ссылки вы можете найти релизы.

Самый простой способ установить protoc - использовать двоичные файлы и впоследствии, вы можете скомпилировать файл, когда находитесь в "/protobufBinaries/bin" и там вы найдете там protoc.

Теперь, когда у вас есть protoc, вы можете запустить: ./protoc --php_out=/var/www/html/generated_files/var/www/html/proto/example.proto --proto_path=/var/www/html/proto

ПРИМЕЧАНИЕ. Не забудьте указать --proto_path, иначе это приведет к ошибке. Вам нужно указать один и тот же путь, но не обязательно включать этот файл. You must specify a --proto_path which encompasses this file.

В моем случае классы были сгенерированы в /var/www/html/generated_files.

Удачи

Ещё вопросы

Сообщество Overcoder
Наверх
Меню