protobuf(v3)
를 사용하여 직렬화 및 역직렬화를 수행하고, 설치부터 사용까지 어떤 단계가 필요한지, 어떤 문제에 주의해야 하는지 알아보세요. protobuf(v3)
进行序列化和反序列化,从安装到使用需要进行哪些步骤,注意哪些问题。
操作环境
Centos7.8
php7.4
安装
在github
上搜索google/protobuf
,找到官方源库文档,找到对应的PHP文档,按照官方文档去进行操作。
文档中安装涉及了两个部分,一个是安装protobuf
的C扩展,另一个是依赖包google/protobuf
。
C扩展的安装使用pecl
命令(需要使用find / -name pecl
查找,安装的路径并没有在环境变量中);
除此之外还依赖其他的命令需要先行安装,C扩展下载安装的路径不符合预期(我的php
使用remi-php
的库安装,路径和原始镜像的默认设置不同);
之后需要对protobuf.so
建立软链接;
之后使用composer
安装依赖包即可。
接下来还需要代码生成器protoc
,[proto的安装],解析定义文件*.proto
并生成对应php
代码,在项目中使用,需要引入对应的代码才可以,需要变更composer.json
文件增加autoload
配置,如果是测试,也可以手动require
。
使用
使用主要分为两点,一个是序列化,另一个是反序列化。【推荐:PHP视频教程】
$pb=new Demo(); $pb->setName('demo'); //序列化,数据不可看 $string=$pb->serializeToString(); //序列化,数据可看 $string=$pb->serializeToJsonString(); //反序列化 $pb=new Demo(); //从db中获取到的序列化值,反序列化赋值给$pb,然后就可以正常使用 $pb->mergeFromString($string); $pb->mergeFromJsonString($string); $pb->getName();//输出demo
🎜또한 먼저 설치해야 하는 다른 명령에 의존합니다. C 확장을 다운로드하고 설치하는 경로가 기대에 미치지 못합니다. (내扩展
不同版本的
공식을 찾으려면protobuf
설치github
에서google/protobuf
를 검색하세요. 소스 라이브러리 문서, 해당 PHP 문서를 찾아 공식 문서에 따라 작동합니다.
php
는 remi-의 라이브러리 설치를 사용합니다. php
이고 경로는 원본 이미지의 기본값과 동일합니다. 설정이 다릅니다. 🎜🎜 이후에는 🎜🎜 이후에 protobuf.so
에 대한 소프트 링크를 설정해야 합니다. composer
를 사용하여 종속성 패키지를 설치할 수 있습니다. 🎜🎜 다음으로 코드 생성기 protoc
, [proto 설치]가 필요하고 정의 파일 *.proto
를 구문 분석하고 해당 php
코드를 생성합니다. , 프로젝트에서 사용하려면 해당 코드를 도입해야 합니다. 테스트용이라면 autoload
구성을 추가하기 위해 composer.json
파일을 변경해야 합니다. , 수동으로 require
code>할 수도 있습니다. 🎜🎜🎜🎜사용법🎜🎜사용법은 크게 두 가지로 나누어집니다. 하나는 직렬화이고 다른 하나는 역직렬화입니다. [권장: PHP 동영상 튜토리얼]🎜rrreee확장🎜다른 버전의 protobuf
는 호환되지 않습니다. 버전 변환이 필요한 경우 블로그 [php에서 protobuf 사용] PHP 문서 PHP 문서🎜를 참조하세요. /github.com/protocolbuffers/protobuf/tree/master/php
위 내용은 PHP에서 protobuf를 사용하는 방법을 빠르게 가르쳐주세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!