繁体   English   中英

laravel中间件。 最有效的方式

[英]laravel middleware. Most efficient way

目前我正在使用laravel 5项目,其中包含约100个帖子和获取路线。 我正在尝试在这里添加中间件,但这个项目背后的逻辑非常复杂。 中间件在这里将发挥重要作用。 在我使用组之前,例如:

Route::group(['middleware' => 'auth'], function(){
      //routes
});

但是因为我必须在组中创建组,所以一切都变得非常混乱,例如:

 Route::group(['middleware' => 'auth'], function(){
          Route::group(['middleware' => 'status'], function(){
               //routes
          });
    });

目前我有20个控制器,所以每个控制器包含大约5个路由器。 你能否建议我在大项目中使用中间件更有效率的方法。 你用什么方式? 提前致谢!

这完全取决于您需要将哪些中间件应用于不同的路由。

如果您拥有共享相同中间件集的路由组,那么最简单的方法是在第一个示例中执行的操作:

Route::group(['middleware' => 'auth'], function(){
  //routes
});

如果你有一些共享公共中间件的根,但是每个中间件都可以应用一些特定的中间件,那么在第二个示例中使用现有组嵌套路由和路由组是一种方法:

Route::group(['middleware' => 'auth'], function(){
      Route::group(['middleware' => 'status'], function(){
           //routes
      });
      Route::get('/uri/', ['middleware' => 'some_other_middleware']);
});

最后,当不同的路由具有不同的中间件集并且您无法以任何方式对它们进行分组时,您需要为每个中间件应用一组中间件:

      Route::get('/uri1/', ['middleware' => 'some_middleware']);
      Route::get('/uri2/', ['middleware' => 'some_other_middleware']);

简而言之 - 如果您对要应用于哪些路由的中间件有复杂的规则,那么在routes.php文件中设置它将反映复杂性。

您在中间件中执行的某些操作应该属于应用程序中的某个其他层并且移动逻辑可能会简化routes.php ,但这一切都取决于您拥有的路由和中间件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM