アプリケーションからミドルウェア(HttpKernel)を削除する


middleware

 悩み事

ミドルウェアの一部を削除したい

 解決方法

App::forgetMiddleware()メソッドを利用します

// 独自のクラスを登録してある場合はそれを指定します
\App::forgetMiddleware('MyApp\Middleware');

// LaravelのFrameGuardクラスを削除します
\App::forgetMiddleware('Illuminate\Http\FrameGuard');

 アドバイス

ローレベルのメソッドですが、
実行する場合はリクエストのライフサイクルの中でも早いうちに実行しなければなりません

記述する具体的な場所は、サービスプロバイダーのregister()に記述します
register()の後に呼ばれるメソッドなどでは、効果がありません

リクエストのライフサイクルについて理解するの、
"Build stacked HTTP Kernel"の部分が該当します

ただし、次のクラスは削除する事ができません:

  • Illuminate\Cookie\Guard
  • Illumiante\Cookie\Queue
  • Illuminate\Session\Middleware

これらはLaravelのコアクラスの為、削除はできません


Author:Chuck Heintzelman

Editor and Translator:Yuuki Takezawa