Upgrade to Pro — share decks privately, control downloads, hide ads and more …

なういProtocolBuffers

chobie
January 22, 2014

 なういProtocolBuffers

PHP勉強会@相模原でphp-protocolbuffersについてさくっと話してきたこと

https://github.com/chobie/php-protocolbuffers

https://github.com/chobie/protoc-gen-php

https://code.google.com/p/protobuf/

chobie

January 22, 2014
Tweet

More Decks by chobie

Other Decks in Programming

Transcript

  1. 自己紹介 ì  ちょびえです   ì  h*ps://twi*er.com/chobi_e   ì  h*ps://github.com/chobie  

    ì  仕事   ì  六本木らへんでWebサービスに携わっています   ì  主にサーバーサイドがメイン   ì  OSS   ì  PECL  Sundown,その他libuv,  libgit2  extension等   ì  あとFluentLoggerのPHP版書いてたりします
  2. 使い方 git  clone  h*ps://github.com/chobie/php-­‐protocolbuffers.git   cd  php-­‐protocolbuffers   phpize  

    ./configure   make  &&  make  install   #  あとはphp.iniにextension=protocolbuffers.soを追加すれ ばOK
  3. 使い方 package  net.chobie.Example;   message  Person{    opZonal  string  name

     =  1;    message  Phone{opZonal  string  number  =  1;}    repeated  Phone  phone  =  2;   }   こんな感じの定義ファイル(message.proto)を作って protoc  -­‐-­‐php_out=php  message.protoすれば出来上がり  
  4. 使い方 <?php   use  net\chobie\example\Person;   $person  =  new  Person();

      $person-­‐>setName(“chobie”);   $raw  =  $person-­‐>serializeToString();   echo  $raw;   $p2  =  Person::parseFromString($raw);  
  5. MessagePackとの比較 ì  MessagePackのIDLは多言語でサポートしている わけではない   ì  PHP版はもちろん対応していない   ì  速度差はそこまで変わらない

      ì  エクストリームな使い方すると顕著だけど   ì  なんかアプリ作る時はProtocolBuffersのが楽   ì  inserZon_pointで好きなコードを埋め込めるのが 強力    
  6. ProtocolBuffersの利用例 ì  Android  Market  API   ì  Google  RealZme  bidding

     protocol   ì  Riakのバイナリ通信プロトコルとして   その他色んな所で使われています