本节课我们来学习一下路由的分组功能和
MISS
设置
一.路由分组
1.
路由分组,即将相同前缀的路由合并分组,这样可以简化路由定义,提高匹配效率;
2.
使用
group()
方法,来进行分组路由的注册;
Route::group('address', function () {
Route::rule(':id', 'Address/details');
Route::rule(':name', 'Address/search');
})->ext('html')->pattern(['id'=>'\d+', 'name'=>'\w+']);
3.
也可以省去第一参数,让分组路由更灵活一些;
Route::group(function () {
Route::rule('ds/:id', 'Address/details');
Route::rule('sr/:name', 'Address/search');
})->ext('html')->pattern(['id'=>'\d+', 'name'=>'\w+']);
4.
使用
prefix()
方法,可以省略掉分组地址里的控制器;
Route::group('address', function () {
Route::rule(':id', 'details');
Route::rule(':name', 'search');
})->ext('html')->prefix('Address/')->pattern(['id'=>'\d+', 'name'=>'\w+']);
5.
使用
append()
方法,可以额外传入参数;
Route::group()...->append(['status'=>1]);
6.
路由规则
(
主要是分组和域名路由
)
定义的文件,加载时会解析消耗较多的资源;
7.
尤其是规则特别庞大的时候,延迟解析开启让你只有在匹配的时候才会注册解析;
8.
我们在
route.php
中开启延迟解析,多复制几组规则,然后来查看内存占用;
'url_lazy_route' => true,
二.
MISS
路由
1.
全局
MISS,
类似开启强制路由功能,匹配不到相应规则时自动跳转到
MISS
;
Route::miss('public/miss');
2.
分组
MISS
,可以在分组中使用
miss
方法,当不满足匹配规则时跳转到这里;
Route::miss('miss');