1. Go to this page and download the library: Download language/yii2-protobuf library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
language / yii2-protobuf example snippets
return [
...
'components' => [
...
'request' => [
// !!! insert a secret key in the following (if it is empty) - this is uf\ProtobufParser'
],
],
'response' => [
'formatters'=>[
'protobuf' => [
'class'=>'Language\Protobuf\ProtobufResponseFormatter',
'hump'=>true, //By default, the field name is underlined to hump, for example, iphone_num is converted to IphoneNum.
],
],
],
...
],
]
class BaseController extends Controller
{
use ProtobufTrait; //Inject using the trait attribute asProtobuf method
public function init()
{
parent::init();
// 消息文件注册
ProtobufManager::register(ROOT . '/proto/msg.proto.php');
}
}
/**
* Created by PhpStorm.
* User: liugaoyun
* Date: 2018/12/1
* Time: 下午9:10
*/
namespace frontend\controllers;
use Language\Protobuf\ProtobufTrait;
use yii\base\Controller;
class TestController extends Controller
{
public function actionProtobuf(){
//params
$params = \Yii::$app->getRequest()->getBodyParams();
//TODO:your logic
//convert array to protobuf
$data = [
'UserInfo'=>[
'OpenUid'=>'xxxx',
'NickName'=>'xxxx',
'Age'=>100,
'Param1'=>1000
],
'AddrList'=>[
'home'=>[
'Address'=>'addr1',
'IphoneNum'=>'153xxxx6476'
],
'company'=>[
'Address'=>'addr2',
'IphoneNum'=>'188xxxx7049'
],
],
'GoneCities'=>[
['Name'=>'Beijing'],
['Name'=>'Hangzhou'],
]
];
return $this->asProtobuf(['class'=>'PbApp\UserLoginACK', 'data'=>$data]);
}
}
return [
...
'components' => [
...
'response' => [
'formatters'=>[
'protobuf' => [
'class'=>'Language\Protobuf\ProtobufResponseFormatter',
'hump'=>true, //By default, the field name is underlined to hump, for example, iphone_num is converted to IphoneNum.
'requestProtoClass'=>'PbApp\MyRequest'
],
],
],
...
],
]
message UserMsgLoginREQ{
string UserName = 1;
string Password = 2;
}
message FlexiableRequest
{
string ProtoClass = 1; // proto class to parser
bytes ProtoData = 2; // bytes protobuf data
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.