デフォルトでは、Laravel はレート制限 (スロットル) 用に 2 つのミドルウェアを提供します。 リーリー
のマッピングを次のように変更できます。 リーリー ###質問###
問題は、上記が動的ではなく、環境に依存することです。たとえば、staging および
production
development 環境では Redis を使用していません。
###可能な解決策###
次のような明らかに汚い解決策があります (
Kernel.php):
リーリー
Kernel
redis に設定されているかどうか) に基づいて、アプリケーションが関連するミドルウェアを動的に選択するようにしたいと考えています。
上記の解決策は、アプリケーションが起動する前にカーネルにアクセスされるため機能しません。そのため、現時点では環境が利用できません。私が現在検討しているもう 1 つの解決策は、基本の
ThrottleRequests クラスを拡張して、関連するクラスが動的に呼び出されるようにすることです。
多くの調査とテストを行った結果、
リーリーRouteServiceProvider
でthrottle
ミドルウェアを動的に設定することが最良の解決策であるという結論に達しました。コードは次のとおりです。