您的位置:首页 > 编程语言 > PHP开发

微服务之数据库服务-服务端(PHP+YII)

2017-10-18 20:28 211 查看
以YII、自定义数据操作两种方式组成的数据库微服务的服务端。

客户端介绍

YII控制器

BaseController

所有数据库操作请求的基类,通过获取对应的参数实例化数据库类。提供其他基础操作函数。

初始化数据库代码

// 返回值为JSON
Yii::$app->response->format = Response::FORMAT_JSON;

// 初始化数据库信息
$request = Yii::$app->request;
$dbName    = $request->get('_db', $request->post('_db', ''));
$tableName = $request->get('_table', $request->post('_table', ''));
$dbType    = $request->get('_type', $request->post('_type', 'mysql'));
$this->initDb($dbName, $tableName, $dbType);


DmlController、DqlController

继承自BaseController,提供自定义的函数操作处理,对应客户端Dg_Db_Hnb类。

insert

/**
* insert 插入数据
* @return JSON
*/
public function actionInsert()
{
// 参数
$request  = Yii::$app->request;
$data     = $request->post('data', array());
if ( empty($data) || !is_array($data) ) {
return $this->renderJson(ERROR, ERROR_PARAM_DATA_WRONG, '数据参数错误!');
}
// 插入
$response = $this->_dbBase->insert($data);
// 输出
return $response;
}


query

/**
* 查询数据
* @param  array   $param 查询条件,条件数组或者条件SQL
* @param  string  $order 排序规则
* @param  string  $limit 获取条数
* @param  string  $field 查询的列,默认为*
* @param  string  $group 分组规则
* @return json   数据列表
*/
public function actionQuery()
{
// 参数
$request = Yii::$app->request;
$param   = $request->get('param', '');
$param   = $this->formatParam($param);
$order   = $request->get('order', false);
$limit   = $request->get('limit', false);
$field   = $request->get('field', '*');
$group   = $request->get('group', false);

// 查询
$response = $this->_dbBase->query($param, $order, $limit, $field, $group);
// 输出
return $response;
}


QueryController

继承自BaseController,提供Yii数据操作处理,对应客户端Dg_Db_Yii类。

/**
* Yii\db\Query命令请求
*/
public function actionIndex()
{
$request = Yii::$app->request;
$_db     = $request->get('_db', '');
$_call   = $request->get('_call', array());
try {
$results = $this->execute(new \yii\db\Query(), $_call);
return $this->renderJson(SUCCESS, NO_ERROR, $results);
} catch (\Exception $e) {
return $this->renderJson(ERROR, $e->getCode(), $e->getMessage());
}
return $results;
}


使用说明

参考客户端调用方式

源码

下载源码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息