1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- namespace app\common\middleware;
- use app\Request;
- use crmeb\interfaces\MiddlewareInterface;
- use think\Response;
- abstract class BaseMiddleware implements MiddlewareInterface
- {
-
- protected $request;
- protected $args = [];
- abstract public function before(Request $request);
-
- public function getArg($num, $default = null)
- {
- return isset($this->args[$num]) ? $this->args[$num] : $default;
- }
- final public function handle(Request $request, \Closure $next, ...$args): Response
- {
- $this->args = $args;
- $this->request = $request;
- $this->before($request);
- $response = $next($request);
- $this->after($response);
- return $response;
- }
- abstract public function after(Response $response);
- }
|