32

LaravelでMiddlewareを作ったのでそのメモ

悠長にQiita用の記事をまとめてる時間がないのでいつもの殴り書き!

🤔 Middlewareとはなんぞや?

laravel.comによると、アプリケーションにHTTPリクエストが到達する前にフィルタしてくれる便利な機能だそうです。

Middleware provide a convenient mechanism for filtering HTTP requests entering your application.

個人的なイメージはこんな感じ

HTTP Request→Middleware→Controller→Middleware→HTTP Response

要するに前処理や後処理で使える共通的な機能といったところです。認証機能とかを噛ましておくと便利だと思います。

🏁 Middlewareを利用する目的

激務の合間を縫ってちょこちょこLaravelでAPIを作っているのですが、共通的に使える認証処理が欲しいというところがあったので、それで使えそうだなというところで思いついたところです。Middlewareの概念はVue.jsやAngularを触っている過程でなんとなく知っていたので、すぐにピンときました。

🥏 Middlewareの作り方

php artisan make:middleware Piyo とすると app/Http/Middleware に生えてきます。

このファイルのhandle()の中に処理を書くことで処理を実装でき、 return $next($request); でControllerへリクエストを渡すことができ、 return response(); でレスポンスを返せます。認証成功したら return $next($request);して、失敗したら return response(); すると良さげですね。

また $request->merge(['hoge' => $hoge]); とすることで $request に要素を足せました。

🚀 Middlewareのルーティング

闇雲にMiddlewareが実行されるわけではなく、ルーティングしてこそ進化を発揮してくれるっぽいのでルーティングします。

まずは app/Http/Kernel.php に以下のプロパティを切り、Middlewareの名前とPATHを定義します。

次に routes/web.php で紐付けたいControllerに対して先程のMiddlewareを紐付ければ終わり。

時間がないので今回は以上!

また今回の記事作成においては@aocattleyaさんの【GitHub】README.mdをカッコ可愛くデザインしてアプリの魅力を120%にするからインスピレーションを受け、段落に絵文字をつけてみました!!!普段殺風景な記事も、今回はちょっと見栄え良くなったかな!?

りこ🍥
  • りこ🍥
  • 🌌ネトゲ廃人を経てWeb漂流物に成り果てた何か。さて次へ向かう先はどこやら。えっちらほっちら。

コメントする

メールアドレスが公開されることはありません。