Expand description
控制器模块 — SzController trait
对齐 PHP app\SzController(abstract class extends BaseController)。
继承链:BaseController → SzController → AddonsBaseController → 业务控制器。
§PHP 对齐
| PHP 方法 | 签名 | Rust 等价 |
|---|---|---|
renderJson($code=1, $msg='', $data=[]) | 返回 compact('code','msg','data') 数组 | SzController::render_json 返回 Value::Object |
renderSuccess($msg='success', $data=[]) | json(renderJson(1, $msg, $data)) | SzController::render_success 返回 Response |
renderError($msg='error', $data=[], $code=0) | json(renderJson($code, $msg, $data)) | SzController::render_error 返回 Response |
postData($key=null) | $this->request->param(...) | SzController::post_data / SzController::post_data_by_key |
getData($key=null) | $this->request->get(...) | SzController::get_data / SzController::get_data_by_key |
§参数顺序差异
PHP renderSuccess($msg, $data) 与 Rust ApiResponse::success(data, msg) 参数顺序相反。
本 trait 严格遵循 PHP 顺序(msg 在前),内部调用 ApiResponse 时调换参数。
§Request 传递
PHP 通过 $this->request 在控制器内部访问当前请求;Rust 控制器无状态,
由 handler 在每次请求时将 Request<Body> 作为参数传入 trait 方法。
§async trait
使用 Rust 1.75+ 原生 async fn in trait。trait 暂不支持 dyn SzController;
若未来需要 trait object,可改用 #[async_trait] 宏(届时增加 async-trait 依赖)。
Structs§
- Route
Info - 路由信息(对齐 PHP
addons\BaseController的 $controller/$action/$routeUri/$group) - User
Info - 用户信息(对齐 PHP
$this->user数组中的关键字段)
Traits§
- Addons
Base Controller - addons 控制器基础 trait(对齐 PHP
addons\BaseController) - Base
Controller - 控制器基础 trait(对齐 PHP
app\BaseController) - SzController
- 控制器基础 trait(对齐 PHP
app\SzController)