L初めてのLaravel

Laravel 全体マップ

重要単語と構造ツリーで、Laravelの全体像をつかむ

Laravelには覚える言葉がたくさん出てきます。ここではまず重要単語を初心者向けの短い説明つきで一覧にし、 続いてクラスやフォルダの階層をツリー図で見せます。 細かい文法の前に「どんな部品が、どういう関係で並んでいるのか」を目でつかみましょう。

重要単語一覧

Laravelでよく出てくる 23 語を、意味をかみくだいて説明します。 色はざっくりした仲間分けです。

基本の役割

MVC

Model / View / Controller

役割を3つに分ける設計

アプリを「データ(Model)」「画面(View)」「仲介役(Controller)」の3つに分けて作る考え方。役割を分けることで、どこを直せばよいか分かりやすくなります。

ルーティング

Routing

URLと処理の対応表

「このURLに来たら、この処理を動かす」という対応づけのこと。routes/web.php に書きます。玄関で行き先を案内する受付のような役割です。

コントローラ

Controller

処理の交通整理役

リクエストを受け取り、必要な処理を呼び出して、結果(レスポンス)を返す仲介役。自分で計算しすぎず、薄く保つのがコツです。

モデル

Model

1つのテーブルを表すクラス

データベースの1つのテーブルに対応するクラス。User モデルなら users テーブル、というように結びつきます。データの読み書きの窓口になります。

リクエスト処理

リクエスト / レスポンス

Request / Response

受け取る/返す

リクエストはブラウザからサーバへの「お願い」、レスポンスはサーバからブラウザへの「返事」。Laravelはこの一往復を組み立てる仕組みです。

ミドルウェア

Middleware

処理の前後の関所

リクエストがコントローラに届く前後に挟まる「関所」。ログイン確認や共通チェックなどを、ここでまとめて行えます。

バリデーション

Validation

入力値のチェック

フォームなどの入力値が正しいか(空でないか、メール形式か等)を確認する仕組み。不正な値を早い段階ではじき、安全とデータの質を守ります。

フォームリクエスト

Form Request

検証ルール専用クラス

バリデーションのルールをまとめる専用クラス。コントローラから検証の記述を追い出し、すっきり保つために使います。

データベース

Eloquent

Eloquent ORM

SQLを書かずにDB操作

LaravelのORM。テーブルをクラス(モデル)として扱い、SQLをほとんど書かずに User::find(1) のような直感的な書き方でデータを操作できます。

マイグレーション

Migration

テーブル設計の履歴

テーブルの作成や変更を、PHPのコードとして記録・実行する仕組み。設計の変更履歴が残り、チーム全員が同じDB構造を再現できます。

リレーション

Relation

テーブル同士の関係

「ユーザーは複数の投稿を持つ」のようなテーブル間のつながり。Eloquentのモデルにメソッドとして書くと、関連データを簡単にたどれます。

シーダー

Seeder

初期・テストデータ投入

データベースに初期データやテスト用データをまとめて入れる仕組み。開発中に何度でも同じデータを用意し直せます。

クエリビルダ

Query Builder

SQLを組み立てる道具

SQLをメソッドを繋げる形で組み立てられる機能。DB::table('users')->where(...) のように書け、複雑な検索も安全に作れます。

画面(ビュー)

Blade

Blade Template

HTMLを作るテンプレート

Laravelのテンプレートエンジン。HTMLの中に @if や @foreach、{{ $name }} を書いて、データを埋め込んだ画面を作れます。

ビュー

View

利用者に見える画面

利用者が実際に目にするHTMLの画面部分。resources/views フォルダに Blade ファイルとして置きます。

コンポーネント

Blade Component

画面の再利用パーツ

ボタンやカードなど、画面の部品を再利用できる形にまとめたもの。同じ見た目を何度も書かずに済みます。

土台・仕組み

Artisan

Artisan CLI

付属のコマンド道具

Laravel付属のコマンドラインツール。php artisan make:controller のように打つと、雛形の自動生成やDB操作などを素早く行えます。

サービスコンテナ

Service Container

部品を組み立てる箱

クラスが必要とする部品(依存)を自動で用意して渡してくれる仕組み。newを自分で書かなくても、必要なものが差し込まれます。

サービスプロバイダ

Service Provider

起動時の初期設定係

アプリ起動時に「何をコンテナに登録するか」などをまとめて設定する場所。Laravelの各機能はここで組み立てられます。

ファサード

Facade

機能への簡単な入口

Route:: や DB:: のように、複雑な仕組みへ短い書き方でアクセスできる窓口。裏ではサービスコンテナの部品を呼び出しています。

設定ファイル

Config

アプリの設定値の置き場

config フォルダにある、アプリ全体の設定をまとめたファイル群。DB接続先やタイムゾーンなどをここで一元管理します。

環境変数(.env)

Environment Variables

秘密や環境ごとの値

パスワードやAPIキー、接続先など、環境ごとに変わる値を書くファイル。コードに直接書かず .env に分けて安全に管理します。

Composer

Composer

PHPのパッケージ管理

PHPのライブラリ(部品)を導入・管理するツール。Laravel本体や追加機能のインストールにも使います。

構造ツリー(階層図)

「クラスの下にプロパティやメソッドがぶら下がる」といった入れ子の関係を、 木の枝のように表しました。インデントと縦線で、どれがどれの中にあるかが分かります。

クラスプロパティメソッドフォルダファイル役割・概念

Eloquentモデルクラスの中身

1つのクラスの下に「プロパティ(設定値)」と「メソッド(動き)」がぶら下がる、クラスの基本構造です。

  • class User extends Model— users テーブルに対応するモデル
    • プロパティ— クラスが持つ設定・データ
      • $table = 'users'— 対応するテーブル名
      • $fillable = [...]— 一括代入を許す列
      • $hidden = ['password']— JSONで隠す列
      • $timestamps = true— 作成/更新日時を自動管理
    • メソッド— クラスが行える動き
      • posts()— リレーション: このユーザーの投稿一覧
      • profile()— リレーション: 1対1のプロフィール
      • getFullNameAttribute()— アクセサ: 姓名を結合して返す
      • scopeActive()— スコープ: 有効なユーザーだけ絞り込む

MVCとリクエストの流れ

ブラウザからのリクエストが、どの部品を通ってレスポンスになるのかを上から順にたどれます。

  • HTTPリクエスト(ブラウザから)
    • ルーティング (routes/web.php)— URLから担当を決める
      • ミドルウェア— 前後の関所(ログイン確認など)
        • Controller— 処理の交通整理
          • Model (Eloquent)— DBからデータを取得
          • View (Blade)— データを埋めてHTML生成
            • HTTPレスポンス(ブラウザへ)— 完成したHTMLを返す

Laravelプロジェクトのフォルダ構成

「どのファイルがどこにあるか」の地図。役割ごとにフォルダが分かれています。

  • my-app/— プロジェクトの一番上
    • app/— アプリ本体のPHP
      • Http/
        • Controllers/— コントローラ群
        • Middleware/— ミドルウェア群
      • Models/— Eloquentモデル群
      • Providers/— サービスプロバイダ
    • routes/— ルーティング定義
      • web.php— 画面向けのルート
      • api.php— API向けのルート
    • resources/
      • views/— Bladeテンプレート
    • database/
      • migrations/— テーブル設計の履歴
      • seeders/— 初期データ
    • config/— 設定ファイル群
    • public/— 公開フォルダ(入口 index.php)
    • .env— 環境ごとの秘密の値
    • composer.json— 依存パッケージ一覧

もっと深く知りたい語は、各Dayのレッスンや実務用語集でも確認できます。