>백엔드 개발 >PHP 문제 >PHP에서 프로토버퍼 사용하기

PHP에서 프로토버퍼 사용하기

步履不停
步履不停원래의
2019-06-19 09:48:034457검색

PHP에서 프로토버퍼 사용하기

Protobuf 소개

protobuf(프로토콜 버퍼)는 Google에서 제작한 교차 플랫폼, 교차 언어, 확장 가능한 데이터 전송 및 저장 프로토콜입니다. 는 효율적인 데이터 압축 코딩 방법 중 하나입니다.

프로토콜 버퍼 데이터 직렬화에 유연하고 효율적입니다. XML에 비해 프로토콜 버퍼는 더 작고 빠르며 간단합니다. 처리할 데이터의 데이터 구조가 정의되면 프로토콜 버퍼의 코드 생성 도구를 사용하여 관련 코드를 생성할 수 있습니다. 프로그램을 재배포하지 않고도 데이터 구조를 업데이트할 수도 있습니다. Protobuf를 사용하여 데이터 구조를 한 번 설명하면 구조화된 데이터를 다양한 언어 또는 다양한 데이터 스트림에서 쉽게 읽고 쓸 수 있습니다.

프로토콜 버퍼는 데이터 저장이나 RPC 데이터 교환 형식에 매우 적합합니다. 통신 프로토콜, 데이터 저장 및 기타 분야에서 사용할 수 있는 언어 독립적이고 플랫폼 독립적이며 확장 가능한 직렬 구조화된 데이터 형식입니다.

또한 Protobuf는 인트라넷에서의 효율적인 데이터 교환 효율성으로 인해 마이크로 서비스에서 널리 사용됩니다. grpc는 이를 기반으로 구축되었습니다.

php-protobuf 설치

protobuf는 기본적으로 php를 지원하지 않기 때문에 php가 pb를 사용하는 경우 해당 확장 프로그램을 설치해야 합니다.

pecl install protobuf

환경에 protoc 컴파일러가 있어야 합니다. 다운로드하여 설치하세요. 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;
}
설치가 성공했는지 확인하세요. #🎜 🎜#rrreee

php-protobuf가 성공적으로 설치되었습니다

rrreee#🎜🎜#루멘설치 > 및 google/protobuf는 #🎜🎜#rrreee
lumen new에 의존합니다. rpc 명령은 composer create-project laravel/lumen rpc
rrreee#🎜🎜#Add classmap under composer.json: #🎜🎜과 동일합니다. #rrreee#🎜🎜#좋아, 준비 완료 작업이 완료되었습니다. #🎜🎜##🎜🎜#데모 직접 만들기#🎜🎜##🎜🎜#코드 디렉터리 mkdir protobuf에 protobuf 폴더 만들기#🎜🎜##🎜🎜#디렉토리를 입력하고 만들기 파일 searchRequest.proto#🎜🎜#rrreee#🎜🎜# #🎜🎜#

위 내용은 PHP에서 프로토버퍼 사용하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.