跳到正文
SSaleSass开发者文档
管理后台
文档中心框架文档
框架文档

MVC 与路由

使用显式路由、精简控制器与共享响应协议。

请求链路

请求先由 ThinkPHP 多应用机制识别模块,再匹配该模块 route 目录中的显式路由,经过中间件后进入控制器。

模块路由不重复包含模块前缀。例如 app/api/route 中声明 v1/roles,对外地址是 /api/v1/roles。未声明的路径不能通过猜测控制器方法访问。

API 控制器示例

php
<?php
namespace app\api\controller;

use think\Response;

/** 只读协议示例;真实业务数据应来自服务和数据库。 */
final class Example extends BaseApi
{
    public function index(): Response
    {
        return $this->success(['version' => '1.0.0']);
    }
}

路由示例

新增平台接口还需明确控制器权限检查。应用业务接口则在应用 route.php 与 manifest.php 的页面契约中同时登记。

php
<?php
use think\facade\Route;

// app/api/route/example.php,实际访问 /api/v1/example。
Route::get('v1/example', 'Example/index');

约定

  • 类名使用 StudlyCaps,方法使用 camelCase,模块目录使用小写。
  • 所有写操作验证输入,并按需使用数据库事务;不接收客户端指定的任意表名或 SQL。
  • 后台页面继承 BaseAdmin,平台 API 继承 BaseApi。
  • 新增和编辑使用弹窗,删除需要二次确认;后端仍需独立鉴权。
SaleSass 开发者文档 · 与项目内的接口契约同步