环境硬性要求:**PHP >= 8.0**,推荐 PHP8.1 / 8.2,必须装 Composer,MySQL 5.7+/8.0
官方手册:[https://doc.thinkphp.cn/v8_0/](https://doc.thinkphp.cn/v8_0/)
一、创建ThinkPHP8项目
composer create-project topthink/think www.mytp8.com cd www.mytp8.com php think run
访问 http://127.0.0.1:8000 看到欢迎页即成功ThinkPHP
创建一个前后台管理:前台index 后台 admin
1、开启多应用,安装多应用扩展
composer require topthink/think-multi-app
2、创建控制器命令
# 创建前台 Index 控制器 php think make:controller index@Index # 创建后台 Admin 控制器 php think make:controller admin@Index
生成目录结构:
app ├── index/ # 前台应用 │ └── controller/ │ └── Index.php ├── admin/ # 后台应用 │ └── controller/ │ └── Index.php
3、多应用路由
路由目录:route/,多应用会自动识别应用路由文件:
route/index.php 前台路由 route/admin.php 后台路由 route/admin.php(后台路由)
<?php
use think\facade\Route;
// 后台首页
Route::get('admin/index', 'Index/index');访问地址
后台:http://127.0.0.1:8000/admin/index
路由分组小技巧(后台统一加前缀,方便后面加登录鉴权中间件)
// route/admin.php
Route::group('admin', function () {
Route::get('index', 'Index/index');
});4. 后台核心需求:登录鉴权中间件(重点)
后台所有接口都要校验登录状态,我们新建一个后台登录中间件
php think make:middleware AdminAuth
生成:`app/middleware/AdminAuth.php`
<?php
namespace app\middleware;
class AdminAuth
{
public function handle($request, \Closure $next)
{
$token = $request->header('token');
if (empty($token)) {
return json(['code' => 401, 'msg' => '未登录,请先登录']);
}
// 这里写校验token逻辑,校验通过放行
return $next($request);
}
}然后给后台路由**绑定中间件**
// route/admin.php
Route::group('admin', function () {
Route::get('index', 'Index/index');
})->middleware(\app\middleware\AdminAuth::class);