首頁  >  文章  >  後端開發  >  快速教你在php中如何操作使用protobuf

快速教你在php中如何操作使用protobuf

藏色散人
藏色散人轉載
2021-11-18 14:30:255643瀏覽

摘要

##這裡有操作教學課程,並記錄下來方便後續複習。

在PHP中使用
protobuf(v3)進行序列化和反序列化,從安裝到使用需要進行哪些步驟,注意哪些問題。

操作環境

Centos7.8
php7.4

安裝

github 上搜尋google/protobuf,找到官方來源庫文檔,找到對應的PHP文檔,按照官方文檔去進行操作。

文件中安裝涉及了兩個部分,一個是安裝

protobuf的C擴展,另一個是依賴套件google/protobuf

C擴充功能的安裝使用

pecl指令(需要使用find / -name pecl來尋找,安裝的路徑並沒有在環境變數中);

除此之外還依賴其他的命令需要先行安裝,C擴展下載安裝的路徑不符合預期(我的

php#使用remi-php的庫安裝,路徑和原始鏡像的預設設定不同);

之後需要對

protobuf.so建立軟連結;

#之後使用

composer安裝依賴套件即可。

接下來還需要程式碼產生器

protoc,[proto的安裝],解析定義檔*.proto並產生對應php程式碼,在專案中使用,需要引入對應的程式碼才可以,需要變更composer.json檔案增加autoload配置,如果是測試,也可以手動require

使用

使用主要分成兩點,一個是序列化,另一個是反序列化。 【推薦:

PHP影片教學

$pb=new Demo();
$pb->setName('demo');

//序列化,数据不可看
$string=$pb->serializeToString();

//序列化,数据可看
$string=$pb->serializeToJsonString();

//反序列化
$pb=new Demo();
//从db中获取到的序列化值,反序列化赋值给$pb,然后就可以正常使用
$pb->mergeFromString($string);
$pb->mergeFromJsonString($string);

$pb->getName();//输出demo

擴充

#不同版本的

protobuf並不相容,如果涉及版本轉換,可參考部落格[php使用protobuf]PHP文件PHP文件 :https://github.com/protocolbuffers/protobuf/tree/master/php                ## 

##

以上是快速教你在php中如何操作使用protobuf的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除