前のパートに戻る 完了して次のパートへ  

  2-1 Laravelの構成


このパートでは、

Laravelの構成をざっと把握することで、

本格的なWebアプリケーションを構築しやすくする狙いがあります。

MVCパターン


LaravelはMVCパターンと呼ばれる構成になっており、

大きく3つの機能に分かれています。

  • M・・Model(モデル)
  • V・・View(ビュー)
  • C・・Controller(コントローラー)
  1. パソコンやスマートフォンなどのクライアントからクリックなどのリクエストを送ります。

  2. リクエストが送られると、ルーティングファイルにより処理先を振り分けます。
  3. 振り分けられたコントローラーが処理を実行します。
  4. 必要であればモデルを経由してデータベースからデータを入出力します。
  5. ビュー(見た目)を生成し、レスポンスとしてクライアントへ表示します。

例えばログイン機能を実装して表示させる場合, 下記のような流れになります。

  1. クライアントからメールアドレス、パスワードなどを入力します。

  2. リクエストが送られると、ルーティングファイルにより認証コントローラーへ処理先を振り分けます。
  3. 振り分けられた認証コントローラが処理を実行します。
  4. モデルを経由しデータベースへメールアドレス・パスワードが存在するか確認します。
  5. 存在確認の処理が終わり、レスポンスとしてクライアントへビューを表示します。(ログイン情報が合っていればホーム画面、合っていなければエラー表示されます。)

厳密には、

リクエストを送信した後にHttpカーネルや、 ルーティングで振り分けた後にミドルウェアなども経由するのですが、

大きな流れとしてこの順番を把握するようにしてください。

  1. リクエストを送る
  2. ルーティングファイルが処理先を振り分ける
  3. コントローラが処理実行
  4. 必要あればモデル経由でデータベースにアクセス
  5. ビューを生成しレスポンスとしてクライアントに表示

TOP画面の説明


1章でも解説しましたが、

Laravelをインストールした後に、

php artisan serve と入力し、

グーグルクロムなどのブラウザでhttp://127.0.0.1:8000と入力すると、

このような画面が表示されたかと思います。

この画面が表示されるまでに、 先ほど説明した処理が実行されています。

  1. パソコンなどで http://127.0.0.1:8000と入力。(リクエスト)
  2. ルーティングファイルが処理先を振り分けます。
  3. (今回はコントローラー・モデルは記載がないので)ビューファイルを表示します
  4. レスポンスとしてクライアントへビューを表示します。

ルーティングファイルとはLaravel内の下記のファイルの事です。

techpit-match
└── routes
    └── web.php

ルーティングファイル(web.php)の中身を確認すると下記の記載があります。

内容はこのような意味になります。

  • GETリクエストで
  • / ルートにアクセスされたら
  • ビューファイル(welcome)を返してください

HTTPリクエストは大きくGETとPOSTの2種類があります。

  • GET・・データを受け取る用。パラメータがURLに表示される(検索条件などはこっちを使う)
  • POST・・データを保存する用。パラメータがURLに表示されない(ユーザー情報登録などはこっちを使う)

GETとPOSTの違いについて

ルーティングファイルにgetもしくはpostを記載することになります。

次に、ビューファイル(welcome)は下記ファイルになります。

techpit-match
└── resources
    └── views
        └── welcome.blade.php

ファイル名が welcome だけでなく、 welcomeの後に .blade.php と記載されています。

LaravelではBladeという機能を使う事で、 データベースからのデータ表示などを簡単に記述する事ができるようになっています。

新規機能作成の度にクセをつける


新しく機能や画面を追加する際も、 主に下記5つのファイルを記入することになりますので、 現在どのファイルを作成しているのかというのを頭に入れながら作成してもらえればと思います。

  • ルーティングファイル
  • コントローラー
  • モデル
  • マイグレーション(データベースのテーブル情報)
  • ビュー

以上でこのパートは終了です。次はログイン機能の実装に入ります。

議論
0 質問
このコースの評価は?