protobuf3入門(mén)(php版)

下載代碼

 git clone https://github.com/protocolbuffers/protobuf.git

安裝protobuf:

./autogen.sh
./configure --prefix=/usr/local/protobuf
make
sudo make install

安裝php擴(kuò)展:

cd protobuf/php/ext/google/protobuf
/usr/local/php-7.1.11/bin/phpize
./configure --with-php-config=/usr/local/php-7.1.11/bin/php-config
make
sudo make install

添加配置:

/usr/local/php-7.1.11/bin/php --ini | grep php.ini
sudo vim  /usr/local/php-7.1.11/etc/php.ini
extension=protobuf.so

測(cè)試:

編寫(xiě)proto 協(xié)議文件

vim User.proto

syntax="proto3";
message UserInfo
{
int32 id = 1;
string name = 2;
}

用protoc編譯協(xié)議文件,會(huì)在當(dāng)前目錄下生成GPBMetadata目錄和UserInfo.php文件

/usr/local/protobuf/bin/protoc --php_out=./ User.proto

安裝php庫(kù):

composer require google/protobuf

編寫(xiě)php腳本

<?php

require('./vendor/autoload.php');
require('./UserInfo.php');
require('./GPBMetadata/User.php');

$pbUserInfo = new UserInfo();
$pbUserInfo->setId(1001);
$pbUserInfo->setName('jack');
$str = $pbUserInfo->serializeToString();

$ptTempUser = new UserInfo();
$ptTempUser->mergeFromString($str);
var_dump("id:".$ptTempUser->getId()." name:".$ptTempUser->getName());

執(zhí)行代碼

/usr/local/php-7.1.11/bin/php -f test.php 
string(17) "id:1001 name:jack"
image.png

持續(xù)更新~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。