## 应用中间件
应用中间件不会自动执行,需要开发者自行调用。
#### 配置
修改配置文件 system/config/middleware.php 中的 web配置顶
```
'web' => [
'auth'=>[
\system\middleware\Auth:class,
\system\middleware\Hd:class
]
]
```
#### 执行
使用中间件服务的 web() 方法运行应用中间件
```
middleware::web('auth');
```
#### 动态添加
动态添加应用中间件
```
middleware::add('auth',[\app\Test:class]);
//各auth中间件中添加处理动作app\Test类
```
## 控制器中间件
控制器中间件只能在控制器访问时有效,普通路由访问时无效。
#### 配置
修改配置文件 system/config/middleware.php 中的controller配置顶
```
'controller' => [
'auth'=>[\system\middleware\Auth:class]
]
```
#### 使用
在控制器的 \_\_construct 方法或之前执行以下代码都可触发控制器中间件运行。
```
middleware::set('auth');
```
只允许指定方法运行中间件
```
middleware::set('auth', ['only' => ['test']]);
```
除了某个方法外其他方法执行中间件
```
middleware::set('auth', ['except' => ['test']]);
```
**示例**
```
namespace app\home\controller;
//初始控制器
class Index{
public function __construct(){
//中间件只在test方法中执行
middleware::set('auth', array('only' => array('test')));
}
public function index(){
echo 'This7框架';
}
public function test(){
echo 'This7视频';
}
}
```