广州网站建设外包公司网站建设情况自查报告
news/
2025/10/3 19:39:04/
文章来源:
广州网站建设外包公司,网站建设情况自查报告,企?I网站建站 ?V州 ??l,做网站工作内容1、syntaxproto3:表明使用的是proto3格式#xff0c;如果不指定则为proto22、package test:定义包名为test#xff0c;生成类时#xff0c;会产生一个目录为test3、message Person:消息主体内容#xff0c;里面为各个字段的定义二、生成对应的PHP类定义好Perso…1、syntaxproto3:表明使用的是proto3格式如果不指定则为proto22、package test:定义包名为test生成类时会产生一个目录为test3、message Person:消息主体内容里面为各个字段的定义二、生成对应的PHP类定义好Person的格式后该格式如果不生成我们所需要的类库其实是无任何意义的还google提供一个工具protoc生成我们要的类库。1、安装protoc安装地址protobuf-php-3.5.1.tar.gz,目前最新为3.5.1官方发布地址https://github.com/google/protobuf/releases/tag/v3.5.1解压并安装tar -zxvf protobuf-php-3.5.1.tar.gzcd protobuf-3.5.1./configure --prefix/opt/soft/protobufmakemake install2、生成类库/opt/soft/protobuf/bin/protoc --php_out./ person.proto生成后将在当前目录产生如下文件GPBMetadata/Person.phpTest/Person.php三、在PHP中使用ProtoBuf在PHP中使用ProtoBuf依赖一个protobuf的扩展目前提供两种方式进行使用,1:php的c扩展2:php的lib扩展包这两者均可在刚才下载包里可以找到。另外也可以使用composer进行安装该依赖扩展composer require google/protobuf这里我主要是使用composer安装应该它可以帮我产生autoload安装好依赖后我们就可以开始在php环境下使用protobuf了1、序列化include vendor/autoload.php;include GPBMetadata/Person.php;include Test/Person.php;$person new TestPerson();$person-setName(lailaiji);$person-setAge(28);$person-setSex(true);$data $person-serializeToString();file_put_contents(data.bin,$data);2、反序列化include vendor/autoload.php;include GPBMetadata/Person.php;include Test/Person.php;$bindata file_get_contents(./data.bin);$person new TestPerson();$person-mergeFromString($bindata);echo $person-getName();可以正常地输出lailaijiPHP常用的使用方法序列化1、serializeToString序列化成二进制字符串2、serializeToJsonString序列化成JSON字符串反序列化1、mergeFromString二进制字符串反序列化2、mergeFromJsonStringJson字符串反序列化.proto的message解析1、定义类型 变量名位置;如int32 age1;这里需要区分变量名后面的数字意义为该变量内容在二进制序列中的位置而不是变量的值该数字必须是唯一不可重复使用。2、目前支持的类型double,float,int32,int64,uint32 ,uint64,sint32,sint64fixed32,fixed64,sfixed32,sfixed64,bool,bytes推荐教程《PHP》PHP环境中使用ProtoBuf数据格式相关教程
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926248.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!