Laravelの処理の流れを知るちょっとしたメモ

はじめに

Laravelを初めて2週間くらいが経ち、CRUDや検索を一通り作ってみて、
「すごい」「神か」「頭良いかよ」と感動しながら、少しづつLaravelさんと仲良くなっている筆者なのですが、

前提知識として、大まかなLaravelの処理の流れ理解していると学習しやすいなあと思ったので、まとめてみることにしました。
ひとつひとつを追うと長く難しくなってしまいそうなので(まだまだ知識も足りないので)、ざっくりとしたものにはなってしまいますが、初学者さんの理解の一助になれば嬉しいなと想いを馳せておきます!

大まかな処理の流れ(HTTPアクセス)

Laravelは処理が終わったら次の処理を呼び出し、
そして、最後にindex.phpレスポンスを返すというような仕組みになっています。

細かく処理を追っていくとその処理の数や役割は多岐に渡るので、
コントローラーの処理にたどり着くまでに登場する以下の2つの処理を中心にまとめてみました。

- Bootstrap
  (アプリケーションを開始するために準備をしてくれる処理、キャッシュファイルを貯めたりもする)

- Middleware
  (リクエストから処理の間にある中間処理やフィルタリングのようなもの)


また、Middlewareは主に、以下の2つがあります。

  
- アプリケーション全体のMiddleware(Global Middleware)
  様々な処理をしているが、Global Middlewareの最後の処理でルートが決定するらしい
  
- ルートに割り当てられたMiddleware(Middleware)
   認証に関連する機能などもMiddlewareのひとつとしてありますね!


そして、それぞれのMiddlewareには前処理と後処理があり、たまねぎのような構造になっています。
たまねぎ構造をがわかりやすいように箇条書きすると以下のような感じでしょうか。

・ブラウザからリクエストが送られる
   ↓
 ・HTTPサーバ(Apacheなど)が待ち構えていてドキュメントルートを見る
   ↓
 ・index.php
   ↓
  ・Bootstrap処理
     ↓
   ・Global Middlewareの前処理
       ↓
   ・ルートが決定
       ↓
    ・ルートに割り当てられたMiddlewareの前処理
        ↓
     ・ルートに割り当てられたControllerの処理
        ↓
     ・レスポンスオブジェクト生成
       ↓
    ・ルートに割り当てられたMiddlewareの後処理
      ↓
   ・Global Middlewareの後処理
     ↓
 ・index.phpにレスポンスを返す

おわりに

以上、簡単にLaravelの処理の流れを簡単に追ってみました。
フレームワークにしっかり触れるのがほぼ初めてだったわたしは、「いったい…どうなってるんだばよ!!!」という感じになっていたので、最初に大まかな全体の流れが見えると、学習する上での理解度が底上げされるのではないかと思います。きっとたぶん。

なるべくわからなかった時の自分がわかるように、読みやすく理解しやすくという点を意識するのですが、わかりやすく説明するって難しいですね。特に技術系のお話って正確に説明しようとするとどうしても難しくなってしまう気がします(自分の力量不足もあるのですが・・・)

注文から、材料を駆使して、レシピをもとにお料理を作って、返してあげるっていう点ではお料理にも似てるなあとか思ったり・・・。
引き続きもっとさくさんのことを知って、早く丁寧で美味しいお料理で、幸せがつくれる人になりたいですね。

まとまらない終わりになりましたが、以上になります!