首頁 > 後端開發 > PHP問題 > php中使用protobuffer

php中使用protobuffer

步履不停
發布: 2023-02-23 08:14:02
原創
4462 人瀏覽過

php中使用protobuffer

Protobuf 簡介

protobuf(Protocol buffers)是Google出品的跨平台、跨語言、可擴展的資料傳輸及儲存的協議,是高效的資料壓縮編碼方式之一。

Protocol buffers 在序列化資料方面,它是靈活的,有效率的。相較於 XML 來說,Protocol buffers 更加小巧,更加快速,更加簡單。一旦定義了要處理的資料的資料結構之後,就可以利用 Protocol buffers 的程式碼產生工具來產生相關的程式碼。甚至可以在無需重新部署程式的情況下更新資料結構。只要使用 Protobuf 對資料結構進行一次描述,即可利用各種不同語言或從各種不同資料流對你的結構化資料輕鬆讀寫。

Protocol buffers 很適合做資料儲存或 RPC 資料交換格式。可用於通訊協定、資料儲存等領域的語言無關、平台無關、可擴展的序列化結構資料格式。

此外,Protobuf由於其在內網高效的資料交換效率,是被廣泛應用於微服務的,在Google的開源框架grpc即是基於此構建起來的。

php-protobuf安裝

由於protobuf原生並不支援php,所以php如果使用pb則需要安裝對應擴充功能。

pecl install protobuf
登入後複製

環境中需要有protoc編譯器,下載安裝方式:

$ wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
$ tar zxvf protobuf-2.5.0.tar.gz
$ cd protobuf-2.5.0
$ ./configure --prefix=/usr/local/protobuf
$ sudo make 
$ sudo  make install
登入後複製

驗證安裝成功:

$ /usr/local/protobuf/bin/protoc  --version
libprotoc 2.5.0
登入後複製

php-protobuf安裝成功

php --ri protobuf
登入後複製

安裝lumengoogle/protobuf依賴

lumen new rpc
登入後複製
lumen new rpc指令相當於composer create-project laravel/lumen rpc
composer require google/protobuf
登入後複製

composer.json下加入classmap:

{
    "classmap": [
        "protobuf/"
    ]
}
登入後複製

ok,準備工作都已經做好了。

自己做一個demo

在程式碼目錄下建立一個protobuf資料夾mkdir protobuf

進入該目錄,建立一個檔案searchRequest .proto

syntax = "proto3";
message SearchRequest {
    string query = 1;
    int32 page_number = 2;
    int32 result_per_page = 3;
    enum Corpus {
        UNIVERSAL = 0;
        WEB = 1;
        IMAGES = 2;
        LOCAL = 3;
        NEWS = 4;
        PRODUCTS = 5;
        VIDEO = 6;
    }
    Corpus corpus = 4;
}
登入後複製

以上是php中使用protobuffer的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板