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

PECLに関して

PHPのライブラリを入れようとするとたまに出てくるPECLに関して。 最近でもメールパーサーを入れた時に出ましたね。 [PHP]pecl,phpize,extensionという単語を見て頭痛がするあな …

no image

cakePHPの認証-Authコンポーネント

ひさびさにPHPをやる機会があり、短期での開発だったため、cakePHPを使いました。 以前やったことがあったんですが、もう2年以上たっていますね。 といいつつも昔のソースを見ながらやることで思い出し …

no image

CakePHP3 Csvプラグイン

cakePHPでのCSVダウンロードプラグインを実装 Contents1 インストール2 プログラム3 注意点4 参考 インストール composer.jsonに下記のように書いてcomposer u …

no image

composerに関して

Javaではライブラリをpomで管理し、mavenを使うことで一括管理していました。 PHPではcomposerがその役割を担っています。 Contents1 composer公式ドキュメント2 co …

no image

switch(true)イディオム

switch文は通常、文字や数字で分岐をさせることが多いですが、実は条件式を入れることも可能です。 私の場合、正規表現を動的に変えたいケースがあり、検索したところ似たケースがありました。 http:/ …