ThinkPHP6多应用模式实战:构建模块化后台管理系统
ThinkPHP6的多应用模式允许我们在单个项目中创建多个独立应用,非常适合构建模块化的后台管理系统。本文将详细介绍如何利用这一特性实现前后端分离的后台架构。
1. 多应用模式配置
首先安装ThinkPHP6并启用多应用模式:
composer create-project topthink/think tp6-multi-app
# 安装多应用扩展
composer require topthink/think-multi-app
# 生成应用目录结构
php think build admin
php think build api
2. 目录结构设计
典型的多应用目录结构如下:
│ ├── admin # 后台管理应用
│ │ ├── controller
│ │ ├── model
│ │ └── view
│ ├── api # 接口应用
│ │ ├── controller
│ │ └── middleware
│ └── common # 公共模块
│ ├── library
│ └── trait
├── config
├── public
└── route
├── admin.php
└── api.php
3. 路由配置示例
为admin应用配置独立路由:
use thinkfacadeRoute;
Route::group(‘admin’, function() {
Route::get(‘login’, ‘auth/login’);
Route::post(‘doLogin’, ‘auth/doLogin’);
// 需要权限的路由组
Route::group(function() {
Route::get(‘dashboard’, ‘index/dashboard’);
Route::resource(‘user’, ‘User’);
})->middleware(‘AdminAuth’);
});
4. 公共模块设计
在common模块中创建可复用的基础类:
trait JsonResponse {
protected function success($data = [], $msg = ‘success’) {
return json([
‘code’ => 200,
‘msg’ => $msg,
‘data’ => $data
]);
}
protected function error($msg = ‘error’, $code = 400) {
return json([
‘code’ => $code,
‘msg’ => $msg
]);
}
}
5. 跨应用调用
在不同应用间共享业务逻辑:
$apiUser = appapiserviceUser::getUserInfo($uid);
// 或者使用门面方式
use appapiserviceUser as ApiUserService;
$userInfo = ApiUserService::getUserInfo($uid);
通过ThinkPHP6的多应用模式,我们可以轻松构建模块化、可扩展的后台管理系统,各应用之间既保持独立又能共享公共资源,大幅提升开发效率和系统可维护性。