新聞中心

這里是一篇操作教程,記錄下來方便后續(xù)復(fù)習(xí)。
在php中使用protobuf(v3)進(jìn)行序列化和反序列化,從安裝到使用需要進(jìn)行哪些步驟,注意哪些問題。
操作環(huán)境
Centos7.8
php7.4
安裝
在github上搜索google/protobuf,找到官方源庫(kù)文檔,找到對(duì)應(yīng)的PHP文檔,按照官方文檔去進(jìn)行操作。
文檔中安裝涉及了兩個(gè)部分,一個(gè)是安裝protobuf的C擴(kuò)展,另一個(gè)是依賴包google/protobuf。
C擴(kuò)展的安裝使用pecl命令(需要使用find / -name pecl查找,安裝的路徑并沒有在環(huán)境變量中);
除此之外還依賴其他的命令需要先行安裝,C擴(kuò)展下載安裝的路徑不符合預(yù)期(我的php使用remi-php的庫(kù)安裝,路徑和原始鏡像的默認(rèn)設(shè)置不同);
之后需要對(duì)protobuf.so建立軟鏈接;
之后使用composer安裝依賴包即可。
接下來還需要代碼生成器protoc,[proto的安裝],解析定義文件*.proto并生成對(duì)應(yīng)php代碼,在項(xiàng)目中使用,需要引入對(duì)應(yīng)的代碼才可以,需要變更composer.json文件增加autoload配置,如果是測(cè)試,也可以手動(dòng)require。
使用
使用主要分為兩點(diǎn),一個(gè)是序列化,另一個(gè)是反序列化?!就扑]:PHP視頻教程】
$pb=new Demo();
$pb->setName('demo');
//序列化,數(shù)據(jù)不可看
$string=$pb->serializeToString();
//序列化,數(shù)據(jù)可看
$string=$pb->serializeToJsonString();
//反序列化
$pb=new Demo();
//從db中獲取到的序列化值,反序列化賦值給$pb,然后就可以正常使用
$pb->mergeFromString($string);
$pb->mergeFromJsonString($string);
$pb->getName();//輸出demo 網(wǎng)頁(yè)題目:快速教你在php中如何操作使用protobuf
網(wǎng)頁(yè)地址:http://www.dlmjj.cn/article/dhsjhpi.html


咨詢
建站咨詢
