ThinkPHP6多应用模式实战:从配置到部署完整指南
1. 多应用模式基础配置
首先需要安装多应用模式扩展:
composer require topthink/think-multi-app
修改config/app.php配置文件:
// 开启多应用模式
'app_auto_multi' => true,
// 默认应用
'default_app' => 'index',
2. 创建多应用目录结构
标准的多应用目录结构如下:
www/ ├── app/ │ ├── index/ # 前台应用 │ │ ├── controller/ │ │ ├── model/ │ │ └── view/ │ ├── admin/ # 后台应用 │ │ ├── controller/ │ │ ├── model/ │ │ └── view/ │ └── api/ # API接口应用 │ ├── controller/ │ ├── model/ │ └── view/ ├── config/ ├── route/ ├── public/
3. 多应用路由配置
每个应用可以有自己的路由文件:
// route/app.php (全局路由)
Route::domain('admin', 'admin')
->domain('api', 'api');
// app/admin/route/app.php (后台路由)
Route::get('login', 'auth/login');
Route::resource('user', 'User');
4. 多应用共享与隔离
共享公共组件:
// 在app目录下创建common目录
app/
├── common/
│ ├── middleware/
│ ├── service/
│ └── trait/
// 在应用中使用共享组件
use appcommonserviceUploadService;
5. 多应用部署方案
Nginx配置示例:
server {
listen 80;
server_name admin.example.com;
root /www/public;
index index.php;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
}
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param APP_NAME admin;
include fastcgi_params;
}
}
- 公共配置放在config目录,应用特有配置放在各自应用目录
- 使用中间件处理应用间的权限隔离
- 数据库表前缀按应用区分(如admin_user, api_user)
通过多应用模式,可以清晰划分业务模块,提高代码可维护性,特别适合中大型项目开发。