PHP如何讀寫protobuf3

這篇文章將為大家詳細講解有關PHP如何讀寫protobuf3,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站從2013年開始,先為興慶等服務建站,興慶等地企業(yè),進行企業(yè)商務咨詢服務。為興慶企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

protobuf(Google Protocol Buffers)是Google提供一個具有高效的協(xié)議數(shù)據(jù)交換格式工具庫(類似Json),但相比于Json,Protobuf有更高的轉化效率,時間效率和空間效率都是JSON的3-5倍。

在proto3中,可以直接使用protoc命令生成PHP代碼。生成的PHP代碼不能直接使用,還需要Protobuf的PHP庫支持。

下面通過一個例子演示下PHP怎么使用protobuf。首先定義proto文件:

syntax = "proto3";
package lm;
message helloworld
{
    int32 id = 1; // ID
    string str = 2; // str
    int32 opt = 3; // optional field
}

注意這里采用的是proto3的語法,和proto2不太一樣,required和optional的限定已經沒有了,所有的字段都是可選的。

接著用protoc生成PHP文件:

protoc --php_out=./ hello.proto

會看到生成了一個hello.pb.php文件:

namespace Lm;
use Google\Protobuf\Internal\DescriptorPool;
use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;
class helloworld extends \Google\Protobuf\Internal\Message
{
    ....
}

閱讀下里面的代碼,發(fā)現(xiàn)它use了Google\Protobuf下的類,這是一個PHP庫,可以去下載:

https://github.com/google/protobuf/tree/master/php/src/Google/Protobuf

也可以用composer引入到項目中,推薦用composer引入,因為composer會幫你自動生成Autoloader:

composer require google/protobuf

采用composer方式引入google/protobuf之后,項目中會出現(xiàn)一個vendor目錄。在自己的代碼中includevendor下的autoload.php,以及剛才生成的helloworld.pb.php文件,就可以進行二進制的讀寫了。

關于“PHP如何讀寫protobuf3”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

網(wǎng)站名稱:PHP如何讀寫protobuf3
標題網(wǎng)址:http://muchs.cn/article0/gpjiio.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設、面包屑導航、用戶體驗、響應式網(wǎng)站做網(wǎng)站、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名