vslim 路由指南

vslim 路由指南

vslim 提供了非常直观的路由定义方式,支持多种 HTTP 方法、路由分组以及中间件。

基础路由

你可以直接在 VSlimApp 实例上定义路由:

$app = new VSlimApp();

$app->get('/hello', function($req, $res) {
    return $res->withBody("Hello World");
});

$app->post('/users', function($req, $res) {
    // 处理 POST 请求
});

支持的方法包括:get, post, put, patch, delete, options, head, any

命名路由

通过 get_named 等方法可以为路由命名,方便后续引用:

$app->get_named('user_profile', '/user/{id}', $handler);

路由分组

使用 group 方法可以对具有相同前缀的路由进行分组:

$app->group('/api/v1')
    ->get('/users', $listUsersHandler)
    ->get('/posts', $listPostsHandler);

分组也支持嵌套。

资源路由

vslim 提供了类似于 Laravel 的资源路由快捷入口:

// 注册完整的资源路由 (index, create, store, show, edit, update, destroy)
$app->resource('/photos', PhotoController::class);

// 注册 API 资源路由 (排除 create 和 edit)
$app->api_resource('/api/photos', PhotoController::class);

WebSocket 路由

vslim 原生支持 WebSocket 路由(由 vhttpd 支撑):

$app->websocket('/ws/chat', ChatHandler::class);

中间件

中间件可以在全局、分组或特定路由上注册:

// 全局中间件
$app->middleware($authMiddleware);

// 分组中间件
$app->group('/admin')
    ->middleware($adminAuthMiddleware)
    ->get('/dashboard', $handler);