## 應用中間件
應用中間件不會自動執行,需要開發者自行調用。
#### 配置
修改配置文件 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視頻';
}
}
```