txf-admin
2.x版本已将txf-admin合并到txf-server中,不再使用json-rpctxf-admin
基于 hyperf 开发,使用其 jsonrpc
功能。
txf-admin
包含一些常用中间件功能,见:中间件
开发接口
配置 jsonrpc
接口
namespace App\Service\Interfaces;
interface ContentServiceInterface
{
public function addContent(array $data);
}
开发控制器
namespace App\Controller;
use App\Service\Interfaces\ContentServiceInterface;
use Hyperf\HttpServer\Annotation\AutoController;
/**
* Class ContentController
* @package App\Controller
* @AutoController()
*/
class ContentController extends AbstractController
{
/**
* @var ContentServiceInterface
* @Inject()
*/
protected $service;
public function addContent()
{
// 请求信息经中间件处理后,统一从 body 中取
$body = $this->request->getAttribute('body');
// 用户登录信息经中间件处理后,统一从 user_data 中取
$userData = $this->request->getAttribute('user_data');
// 一些数据校验、过滤等都在中间件中配置,这里直接转发到server就行了
$body['user_id'] = $userData['id'];
return $this->service->addContent($body);
}
}
同步 jsonrpc
接口文件
在开发环境中,一种偷懒的实现。根据实际项目路径、以及需要同步的文件 配置下 publish.sh
注意:如果你两边都有修改的话会被覆盖,请谨慎使用
从 txf-admin
同步到 txf-server
cd txf-admin
./publish.sh
从 txf-server
同步到 txf-admin
cd txf-server
./publish.sh
服务器配置
默认配置在 config/autoload/server.php
中
jsonrpc-client配置
默认配置在 config/autoload/services.php
中
在 services.php
中增加配置如下
$services = [
...
"ContentService" => \App\Service\Interfaces\ContentServiceInterface::class
];
环境配置
默认配置如下,根据你的实际环境进行调整
APP_NAME=txf-admin
APP_ENV=dev
DB_DRIVER=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=txf
DB_USERNAME=root
DB_PASSWORD=123456
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
DB_PREFIX=txf_
REDIS_HOST=127.0.0.1
REDIS_AUTH=(null)
REDIS_PORT=6379
REDIS_DB=1
REDIS_MAX_IDLE_TIME=60
# HTTP-SERVER地址
SERVER_HOST=0.0.0.0
SERVER_PORT=9504
# JSONRPC服务端地址,多节点或配置中心需要调整该配置
SERVICE_HOST=127.0.0.1
SERVICE_PORT=9505