protobuf(프로토콜 버퍼)는 Google에서 제작한 교차 플랫폼, 교차 언어, 확장 가능한 데이터 전송 및 저장 프로토콜입니다. 는 효율적인 데이터 압축 코딩 방법 중 하나입니다.
프로토콜 버퍼 데이터 직렬화에 유연하고 효율적입니다. XML에 비해 프로토콜 버퍼는 더 작고 빠르며 간단합니다. 처리할 데이터의 데이터 구조가 정의되면 프로토콜 버퍼의 코드 생성 도구를 사용하여 관련 코드를 생성할 수 있습니다. 프로그램을 재배포하지 않고도 데이터 구조를 업데이트할 수도 있습니다. Protobuf를 사용하여 데이터 구조를 한 번 설명하면 구조화된 데이터를 다양한 언어 또는 다양한 데이터 스트림에서 쉽게 읽고 쓸 수 있습니다.
프로토콜 버퍼는 데이터 저장이나 RPC 데이터 교환 형식에 매우 적합합니다. 통신 프로토콜, 데이터 저장 및 기타 분야에서 사용할 수 있는 언어 독립적이고 플랫폼 독립적이며 확장 가능한 직렬 구조화된 데이터 형식입니다.
또한 Protobuf는 인트라넷에서의 효율적인 데이터 교환 효율성으로 인해 마이크로 서비스에서 널리 사용됩니다. grpc는 이를 기반으로 구축되었습니다.
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
lumen new rpc
lumen new rpc
命令相当于composer create-project laravel/lumen rpc
composer require google/protobuf
在composer.json
下添加classmap:
{ "classmap": [ "protobuf/" ] }
ok,准备工作都已做好了。
在代码目录下创建一个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
rrreee#🎜🎜#Add classmap underlumen new에 의존합니다. rpc
명령은composer create-project laravel/lumen rpc
composer.json
: #🎜🎜과 동일합니다. #rrreee#🎜🎜#좋아, 준비 완료 작업이 완료되었습니다. #🎜🎜##🎜🎜#데모 직접 만들기#🎜🎜##🎜🎜#코드 디렉터리 mkdir protobuf
에 protobuf 폴더 만들기#🎜🎜##🎜🎜#디렉토리를 입력하고 만들기 파일 searchRequest.proto
#🎜🎜#rrreee#🎜🎜# #🎜🎜#위 내용은 PHP에서 프로토버퍼 사용하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!