下载protobuf编译器(免安装版,解压即可使用)
	
		[root@localhost ~]# cd /program/protoc
	
		[root@localhost protoc]# wget https://github.com/protocolbuffers/protobuf/releases/download/v23.2/protoc-23.2-linux-x86_64.zip
	
		[root@localhost protoc]# unzip -oq protoc-23.2-linux-x86_64.zip
	
		[root@localhost protoc]# ./bin/protoc --version
	
		libprotoc 23.2
	
		[root@localhost protoc]# rm -rf protoc-23.2-linux-x86_64.zip
	
		 
	
		 
	
		 
	
		将/program/protoc/bin目录加入系统环境变量
	
		[root@localhost ~]# vim /etc/profile
	
		export PATH=$PATH:/program/nginx/sbin
	
		export PATH=$PATH:/program/mysql/bin
	
		export PATH=$PATH:/program/php/bin
	
		export PATH=$PATH:/program/protoc/bin
	
		[root@localhost ~]# source /etc/profile
	
		[root@localhost ~]# protoc --version
	
		libprotoc 23.2
	
		[root@localhost ~]#
		
		
		 
 
	
		
			创建*.proto文件并将其编译
		
			[root@localhost protobuf]# vim Person.proto
		
			syntax="proto3"; // 使用proto3,若不指定则使用proto2
		
			 
		
			package MaNong; // 包名
		
			 
		
			// 定义一个名为Person的message
		
			message Person {
		
			    string name   = 1; // 姓名;等号右边的数字是字段序号,而不是字段值
		
			    int32  age    = 2; // 年龄
		
			    string gender = 3; // 性别
		
			}
		
			[root@localhost protobuf]# protoc --php_out=./ Person.proto # 编译Person.proto文件,生成的文件保存在当前目录
		
			[root@localhost protobuf]# ls
		
			GPBMetadata  MaNong  Person.proto # 编译会生成GPBMetadata和MaNong两个目录,里面都有一个Person.php文件
		
			[root@localhost protobuf]#
		
			说明:不要编辑GPBMetadata/Person.php和MaNong/Person.php这两个文件。
			
			
			
			使用示例
			
			
<?php
require_once __DIR__ . '/GPBMetadata/Person.php';
require_once __DIR__ . '/MaNong/Person.php';
$person = new MaNong\Person();
$person->setName('张三');
$person->setAge(18);
$person->setGender('男');
$file = __DIR__ . '/person.bin';
//========== 把数据序列化并保存到文件 ==========//
$bin = $person->serializeToString();
file_put_contents($file, $bin);
unset($person, $bin);
//========== 从文件读取数据并反序列化 ==========//
$person = new MaNong\Person();
$bin = file_get_contents($file);
$person->mergeFromString($bin);
$name = $person->getName();
$age = $person->getAge();
$gender = $person->getGender();
echo "俺叫{$name}({$gender}),今年{$age}岁。"; // 俺叫张三(男),今年18岁。