HTTPミドルウェアイントロダクションHTTPミドルウェアはアプリケーションへ送信されたHTTPリクエストをフィルタリングする、便利なメカニズムを提供します。アプリケーションのユーザが認証されているかを確認するミドルウェアがLaravelに用意されています。ユーザが認証されていなければ、このミドルウェアはユーザをログインページへリダイレクトします。反対にそのユーザが認証済みであれば、そのリクエストがアプリケーションのその先へ進むことを許可します。認証の他にも多彩なタスクを実行するミドルウェアを書くことができます。CORSミドルウェアは、アプリケーションから返されるレスポンス全部に正しいヘッダを追加することに責任を持つでしょう。ログミドルウェアはアプリケーションにやってきたリクエスト全部をログすることに責任を負うでしょう。サイトメンテナンスモードや認証、CSRF保護などLaravelには多くのミドルウェアが用意されています。これらのミドルウェアは全部、app/Http/Middlewareディレクトリに設置されています。Artisanコマンドを使います。AgeMiddlewareこのコマンドにより、AgeMiddlewareクラスが、app/Http/Middlewareディレクトリー中に生成されます。このミドルウェアで、ageに200歳以上が指定された場合のみ、アクセスを許してみましょう。なければ、ユーザーを"home"のURIへリダイレクトします。}}ご覧の通り、ageが200以下の場合、ミドルウェアはHTTPリダイレクトをクライアントへ返します。なければ、リクエストはパスし、アプリケーションの先へ進めます。ミドルウェアのチェックに合格し、アプリケーションの先へリクエストを通すには、$requestを渡し$nextコールバックを呼び出すだけです。ミドルウェアを把握する一番良い方法は、HTTPリクエストがアプリケーションに届くまでに通過する、数々の「レイヤー(層)」なのだと考えることです。それぞれのレイヤーは、リクエストを通過させるかどうかテストし、場合により完全に破棄することさえできます。Before/Afterミドルウェアミドルウェアがリクエストの前、後に実行されるかは、そのミドルウェアの組み方により決まります。次のミドルウェアはアプリケーションによりリクエストが処理される前に実行されます。}}一方、次のミドルウェアはアプリケーションによりリクエストが処理された後にタスクを実行します。}}ミドルウェア登録グローバルミドルウェアあるミドルウェアをアプリケーションの全HTTPリクエストで実行したい場合は、app/Http/Kernel.phpクラスの$middlewareプロパティへ追加してください。全ルートに適用するのではなく、特定のルートのみに対しミドルウェアを指定したい場合は、先ずapp/Http/Kernel.phpファイルでミドルウェアの短縮キーを登録します。デフォルト状態でこのクラスは、Laravelに含まれているミドルウェアのエントリーを$routeMiddlewareプロパティに持っています。ミドルウェアを追加する方法は、選んだキー名と一緒にリストへ付け加えるだけです。\Illuminate\Routing\Middleware\ThrottleRequests::class,];HTTPカーネルへミドルウェアを定義し終えたら、そのmiddlewareキーをルートのオプション配列で指定できます。//}]);ルートに複数のミドルウェアを定義するために配列が使えます。//}]);配列を使う代わりに、ルート定義にmiddlewareメソッドをチェーンすることもできます。'second']);ミドルウェアを指定する時に、完全なクラス名を指定することもできます。//}]);ミドルウェアグループ多くのミドルウェアを一つのキーによりまとめ、ルートへ簡単に指定できるようにしたくなることもあります。HTTPカーネルの$middlewareGroupsプロパティにより可能です。WebのUIとAPIルートへ適用できる、一般的なミドルウェアを含んだ、webとapiをLaravelは最初から用意しています。],];ミドルウェアグループは、個別のミドルウェアと同じ記法を使い、ルートやコントローラへ結合します。再度説明しますと、ミドルウェアグループは一度に多くのミドルウエアを簡単に、より便利に割り付けるための方法です。//});RouteServiceProviderにより、デフォルトのroutes.phpファイルでは、webミドルウェアグループが自動的に適用されることを覚えておいてください。ミドルウェアパラメーターミドルウェアは追加のカスタムパラメーターを受け取ることができます。指定されたアクションを実行する前に、与えられた「役割(role)」を持った認証ユーザであるかをアプリケーションで確認する必要がある場合、役割名を追加の引数として受け取るRoleMiddlewareを作成することができます。追加のミドルウェアパラメーターは、ミドルウェアの$next引数の後に渡されます。}}ミドルウェアパラメーターはルート定義時に指定され、ミドルウェア名とパラメーターを:で区切ります。複数のパラメーターはカンマで区切ります。//}]);終了処理ミドルウェアまれにHTTPレスポンスがブラウザに送られた後に、ミドルウェアが何かの作業を行う必要があることもあります。Laravelに含まれている「セッション」ミドルウェアは、ブラウザにレスポンスを送った後にストレージへセッションデーターを書き込みます。これを行うにはterminateメソッドを追加し、終了処理可能な(terminable)としてミドルウェアを定義してください。}}terminateメソッドはリクエストとレスポンスの両方を受け取ります。終了処理可能なミドルウェアを定義したら、HTTPカーネルでグローバルミドルウェアのリストへ追加してください。ミドルウェアのterminateメソッド呼び出し時に、Laravelはサービスコンテナから真新しいミドルウェアのインスタンスを依存解決します。handleとterminateメソッドの呼び出しで同一のミドルウェアインスタンスを使用したい場合は、コンテナのsingletonメソッドを使用し、ミドルウェアを登録してください。kawase(Translation).ドキュメントメンテナンス期間は終了しました。注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。閉じる移動クリックで即時移動します。適用ボタンクリック後に、全項目まとめて適用されます。Scaffoldスカフォールド型枠生成スカフィールドLargeスクリーン表示幅640px80%90%100%インデントなし1rem2rem3rem本文フォントコードフォントフォント適用確認フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。バックスラッシュを含むインライン\Code\Blockの例です。以下はコードブロックの例です。}}設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。