簡體   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