ホームページ  >  記事  >  バックエンド開発  >  php の php-protobu 拡張機能をインストールして使用します。

php の php-protobu 拡張機能をインストールして使用します。

WBOY
WBOYオリジナル
2016-06-20 12:45:491110ブラウズ

使用したリソース: https://github.com/allegro/php-protobuf/

解凍ディレクトリに入って実行: phpize

./configure

make

make install

# 次の行を php.ini に追加してください

extension=protobuf.so

PHP を再起動します


phpinfo() protobuff 拡張機能が表示されます



使い方?

保存

最初に proto ファイル foo.proto ファイルを作成します


message PhoneNumber {

必須の文字列番号 = 1;

必須 int32 タイプ = 2;

}

メッセージ パーソン {

必須文字列名 = 1;

必須 int32 id = 2;

オプションの文字列 email = 3;

繰り返し PhoneNumber 電話 = 4;

}

message AddressBook {

繰り返し 人person = 1 ;

}

次に、コマンドを使用して

php protoc-php.php foo.proto

この時点で、pb_proto_foo を生成します.php ファイルが生成されます


具体的なアプリケーションは次のとおりです。


JAVA で通信する場合。 protobuffer は、次のような php ファイル test.php を保存します。

require_once 'pb_proto_test.php';

$packed =curlGet('http://10.0.247.113:8080/testweb/proto' ); //JAVA によって返されるバッファ情報です。

$foo = new AddressBook();

try {

$foo->parseFromString($packed) ;

} catch (Exception $ex) {

die('解析エラー: ' . $e->getMessage());

}

$pb = $foo->getperson();

//print_r($pb);

//print_r($pb[0]);

echo $pb[0]->getName() .' _ '.$pb[0]->getId() .' _ ';

print_r($pb[0]-> getPhone( ));


バッファ データを変更するための PHP 呼び出し

------------------ - -------

require_once 'pb_proto_test.php';

$foo = new Person();

$foo->setName('xiaojh ' );

$foo->setId(200);

$foo->setEmail('dofound@163.com');

//$ foo ->appendPhone(2);

$packed = $foo->serializeToString();

$foo->clear();

try {

$xiao = $foo->parseFromString($packed);

//print_r($xiao);

} catch (Exception $ex) {

die('うーん、この例にはバグがあります');

}

echo $foo->getName();

echo $ foo->getPhone()->number;

$foo->dump();


PHP 内部呼び出し

-----------------------------

バッファデータの生成


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。