# 中间件
为了更好的过滤路由,可以采用中间件方案
需求如下:
1. 判断是否登录
2. 记录操作日志
### 创建中间件存放目录
```
mkdir -p controllers/middleware && cd controllers/middleware
```
### 实现中间件功能
```
touch publicMiddleware.php
```
### 复制以下代码
```
<?php
namespace controllers\middleware;
use system\Base;
use system\Route\Middleware;
use system\Route\Route;
class publicMiddleware extends Middleware {
/**
* @param \system\Base $controller 当前执行的控制器
* @param \system\Route\Route $route 当前执行的Route实例
*
* @return string|bool
*/
public function execMiddleware(Base $controller, Route $route) {
// 该中间件所需要执行的过滤代码...
// self::$session是Base控制器处理好的信息
if (!self::$session['userinfo']) {
return '请登录后操作';
}
return true;
}
}
```
配置使用中间件,打开config/routes.php
```
//加入一条路由,配置中间件
Route::get('/member/info' , 'User@info' , 'middleware\publicMiddleware');
```
路由组配置
```
//路由分组
Route::group('/admin' , function(){
Route::get('/' , 'Admin\Index@index');
} , 'middleware\publicMiddleware')
```
路由组也支持普通路由的设置中间件方式
!!! routes设置中间件的优先级最高
- 简介
- 入口
- 目录结构
- 配置
- 路由
- 中间件
- 控制器
- 配置虚拟服务器
- 第一个控制器
- 跳转和提示
- 重定向
- 数据过滤和读取
- 模板
- 模型
- 数据库配置
- 实例化模型
- 连贯操作
- select
- find
- where
- join
- insert
- update
- delete
- field
- from
- count
- 递增和递减
- 自动完成
- 自动验证
- 上一条下一条
- 事务
- 辅助函数
- 查询语言
- 安全
- CSRF
- 数据验证
- 扩展
- 分页
- 权限
- 权限配置
- 缓存
- 缓存配置
- 表单(废弃)
- 表单开始
- input
- inputText
- inputHidden
- inputPass
- select
- textarea
- button
- submitButton
- generalButton
- resetButton
- 结束表单
- 文件
- 验证码
- 验证码配置
- 图片上传
- 上传配置
- 函数介绍
- 模块