mtphp 文档

控制器与依赖注入

namespace App\Controllers;

use Mtphp\Http\Request;
use App\Services\UserService;

class UserController
{
    // 框架自动注入 Request(按类型)与业务服务(按容器解析)
    public function show(Request $request, UserService $svc, int $id)
    {
        $user = $svc->find($id);
        return response()->json($user);
    }

    // 仅返回数组/对象会被自动按 JSON 输出(见 App::normalizeResponse)
    public function list(UserService $svc): array
    {
        return $svc->all();
    }
}

参数绑定规则(App::bindParams):

  1. 类型命中 Mtphp\Http\Request → 注入当前请求对象;
  2. 参数名与路由命名参数匹配 → 注入路由值;
  3. 可选参数 → 取默认值;
  4. 类型为非内置类/接口 → 由容器 make() 解析(依赖注入)。

兼容 PHP 8.1+ 的联合类型与交叉类型(Support\Reflect 统一解析)。