您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Laravel 5.0

2025/5/9 5:06:09发布30次查看
图片:http://stackphp.com/
如上图所示,中心的绿色区域是整个应用的核心区域。
所以,中间件就是一系列处理请求和响应的方式而不是你用程序逻辑的一部分。
laravel 中默认使用中间件处理请求中的加密解密,以及 cookies 和 sessions。你也可以自定义自己所需的中间件。
写中间件 artisan make:middleware mymiddleware
执行上面的命令,生成中间件文件:
get('remote_port') / 2) % 2 > 0) { throw new \exception(we don't like odd remote ports); } return $next($request); }}
使用中间件 laravel 5 中有两种方法加入中间件,都是写在 app\providers\appserviceprovider。
默认有两个属性 $middleware 和 $stack ,$stack 里面的中间件是每次响应都会处理,而 $middleware 中的中间件是按需处理。
一帮情况下默认的中间件如下:
protected $stack = [ 'app\http\middleware\maintenancemiddleware', 'illuminate\cookie\middleware\guard', 'illuminate\cookie\middleware\queue', 'illuminate\session\middleware\reader', 'illuminate\session\middleware\writer', ];protected $middleware = [ 'auth' = 'app\http\middleware\authmiddleware', 'auth.basic' => 'app\http\middleware\basicauthmiddleware', 'csrf' => 'app\http\middleware\csrfmiddleware', 'guest' => 'app\http\middleware\guestmiddleware', ];
中间件每次请求都处理:
protected $stack = [ 'app\http\middleware\mymiddleware' 'app\http\middleware\maintenancemiddleware', 'illuminate\cookie\middleware\guard', 'illuminate\cookie\middleware\queue', 'illuminate\session\middleware\reader', 'illuminate\session\middleware\writer', ];
中间件按需处理:
protected $middleware = [ 'auth' => 'app\http\middleware\authmiddleware', 'auth.basic' => 'app\http\middleware\basicauthmiddleware', 'csrf' => 'app\http\middleware\csrfmiddleware', 'guest' => 'app\http\middleware\guestmiddleware', 'absurd' => 'app\http\middleware\mymiddleware', ];
中间件路由注释
直接写到控制器类:
/** * @resource(foobar/photos) * @middleware(auth) * @middleware(absurd, except={update}) * @middleware(csrf, only={index}) */class foobarphotoscontroller{}
写到方法:
/** * @middleware(auth.basic) */public function index() {}
$this->middleware()
可以在构造函数或者方法内使用 $this->middleware() 来加载相应的中间件。
...use illuminate\routing\controller;class awesomecontroller extends controller { public function __construct() { $this->middleware('csrf'); $this->middleware('auth', ['only' => 'update']) }}
routes.php 设置中间件
// routes.php// single route$router->get(/awesome/sauce, awesomecontroller@sauce, ['middleware' => 'auth']);// route group$router->group(['middleware' => 'auth'], function() { // lots of routes that require auth middleware});
响应之前和之后处理 应用程序响应之前和之后的中间件处理:
之前处理:
...class beforemiddleware implements middleware { public function handle($request, closure $next) { // do stuff return $next($request); }}
之后处理:
...class aftermiddleware implements middleware { public function handle($request, closure $next) { $response = $next($request); // do stuff return $response; }}
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product