skillup

技術ブログ

PHP

Laraevelのミドルウェアについて

投稿日:

以前からLaravel(ララベル)を使っていてわかりにくかったミドルウェアについてめも。

Laravelは一般的にはMVCフレームワークと言われていますが、コントローラーがリクエストを受け取り、何らかのアクションを起こすまで、あるいはアクションが起こってから、レスポンスを返すまでのレイヤー層の動きを「ミドルウェア」と言います。

例えばフォームの値を受け取って、それをチェックすような仕組み、というものはコントローラーに書かずに別の部分が担当します。これがミドルウェアの働きです。

例えば認証の操作をする場合も、このミドルウェアが使われています。

*ちなみに自作することも可能です。参考文献を見て見ましょう。

ミドルウェアの呼び出し

実際に認証の際に、middlewareを呼び出す場合はrouting時に呼び出すことにします。認証のmiddlewareはauthで呼び出せます。

グローバルミドルウェア

上記のように特定のページだけではなく全てのリクエスト(orレスポンス)時に動くミドルウェアがあり、これをグローバルミドルウェアと呼んでいます。

これを制御しているのがapp/Http/Kernel.phpです。

グローバルミドルウェアは通常だと下記のように定義されています。ここに登録されているものが共通で使われているミドルウェアです。

ミドルウェアのグループ登録

多数のミドルウェアを使うようになると、複数のミドルウェアを一つにまとめて扱えるようにすると管理が楽になります。

ミドルウェアはグループとして扱うこともできます。

例えば下記のような記述はルーティングでwebと呼び出せば、列挙されているミドルウェアが全て使うことができるようになります。

参考文献

PHP Laravelフレームワーク入門 P108〜

-PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

PHP_CodeSnifferによるコードチェック

昨日の記事でphpmdという静的解析ツールを調査したんですが、それ以外にも規約にのっとっているかどうかコーディングをチェックできるツールはあります。 PHP_CodeSniffer https://g …

no image

CakePHP3 リクエストパラメーターの扱いについて

CakePHPのリクエストの扱いについて。 ほとんどのフレームワークですと、HTTPリクエストの扱いに関してはフレームワーク側で実装されていることが多いので、フレームワークを使い始める場合、この部分に …

no image

cakePHP Tips その2

またまたCakePHPのネタです。 タイトルから内容がわからなくてすいません。 五月雨式に行きます。 Contents1 コントローラーごとのベースになるテンプレートの変更2 linkタグでのHTML …

no image

PHPでの画像ダウンロード

PHPで画像ダウンロードをさせる処理があったのでちょっとメモ。 CSVのダウンロードなどと同じように基本的にはHTTPリクエストの応答メッセージをいじるようです。 書こうと思ったのですが、ほぼリンクの …

no image

composer global require

composerでのglobal requireに関して。 composerでライブラリを読み込むとき、一般的には下記のどちらかで読み込むことが多いです。 composer.jsonに記述 compo …