中间件中间件内容简介中间件执行点中间件执行点创建中间件创建中间件分配中间件全局中间件全局中间件路由中间件运行中间件运行中间件中间件参数中间件参数外部中间件外部中间件简介(简介)将中间件视为一组请求的层必须在您的应用程序中通过才能到达资源。例如,使用中间件,您可以验证用户是否已登录并有足够的权限访问应用程序的某些部分,否则将他们重定向到其他地方。中间件其实是controller的扩展,由于此时框架的单例已经构建完成,可以使用ci()函数获取。中间件执行点(Middlewareexecutionpoints)有两个执行点:pre_controller:此时定义的中间件会在controller构造函数之后,但在任何controller操作执行之前执行。post_controller:此时定义的中间件将完全运行在post_controllerCodeIgniter的原生钩子上。控制器构造函数总是首先执行,这是CodeIgniter的行为,LuthierCI不会修改它。在某些时候你可能需要在中间件之前执行代码,方法是在你的控制器中定义一个名为preMiddleware的公共方法:load->view('global_header');});路由中间件(Routemiddleware)在路由组上下文中,middleware是另外一个属性,所以在方法group()的第三个参数中:Route::group('site',['middleware'=>['AuthMiddleware']],功能(){});最后,在个别路由的上下文中,中间件也是另一个属性,所以在第二个参数中Route::put('foo/bar','controller@method',['middleware'=>['TestMiddleware']]);只有当中间件被分配到pre_controller点的路由和路由组时,执行点始终是pre_controller运行中间件(Runamiddleware)要从控制器运行中间件,请使用属性中间件的run()方法:middleware->run('AuthMiddleware');}}中间件参数(Middlewareparameters)该属性中间件的run()方法支持带有中间件参数的第二个参数://$args可以是任意变量类型:$args=['foo'=>'bar'];$this->middleware->run('AuthMiddleware',$args);外部中间件(Externalmiddleware)只要有一个名字对于公共方法,你可以从外部类运行中间件run()middleware->run(newCustomMiddleware());}}
