skillup

技術ブログ

PHP

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

投稿日:2018年2月11日 更新日:

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

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

基本的には全ページに共通な処理(認証)なんかをこれに入れると良さげ。全アクションの共通処理に使えます。

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

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

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

独自ミドルウェアの作成

独自のmiddlewareを作成する場合、下記コマンドで自動生成できます。

SampleMiddelware.php

グローバルミドルウェア

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

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

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

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

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

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

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

ミドルウェアの呼び出し(どのページで有効になるか?ルーティングの設定など)

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

参考文献

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

Laravelのミドルウェアの実施順検証と小技

-PHP
-

執筆者:


comment

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

関連記事

no image

メールパーサー(mailparseとphp-mime-mail-parser)に関して

以前、POP3を使ったメール受信というエントリーでメールパーサーをインストールしたんですが、他のライブラリをインストールする機会があったんでメモ。 https://github.com/php-mim …

no image

メモリー不足でのスワップ割り当て

先日、あるサーバーでcomposerをinstallしようとしたところ、 The following exception is caused by a lack of memory or swap, …

no image

PHPの開発事情 (PHPBrew/ビルトインサーバー/Xdebug/PHPUnit/Composer)

私自身、プログラミングは好きなんですがあまり現代の流行の技術に興味がありません(汗) IT業界はドッグイヤーならぬ、マウスイヤーとも呼ばれているようで、常に最新技術の動向には目を光らせていく必要があり …

no image

nginxの設定&php-fpmインストール

本日、久しぶりにPHPのWebアプリを別サーバーに移行したのですが、nginxの設定でかなり手間取りましたのでちょっと記録しておきます。 Contents1 nginxの設定1.1 インストール1.2 …

no image

composer経由でのpearライブラリのインストール

2018年7月現在、PHPのライブラリはほとんどComposer経由でインストールできるかと思いますが、稀にComposerに対応していないものもあり、その場合、pearから取得してくる必要があります …