2015-05-27 59 views
1

我目前正試圖解析一個.proto文件到php中。我試過使用DrSlump's Protobuf Parser 但是我的知識太小或我的Godaddy虛擬主機缺少一些東西。我用我的知識嘗試了一切,沒有成功去獲得我想要的東西。解析.proto到php類

所以我的問題,有沒有一步一步教程如何讓這個工作?

我有protoc用SSH安裝並還安裝

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

當前問題:

[email protected]:~/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. 
[email protected]:~/Root/var/www/xxx.com/web/test# php protoc-gen-php.php LandData.proto 
Protobuf-PHP @[email protected] 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's 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' 

回答

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

祝你好運