カテゴリ: Laravel 更新日: 2026/04/06

Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説

Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説
Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説

先生と生徒の会話形式で理解しよう

生徒

「Laravelっていうフレームワークを使ってWebアプリを作りたいのですが、プロジェクトの中のフォルダがいっぱいあって混乱しています…」

先生

「Laravelは機能ごとにフォルダが分かれているので、最初は多く感じるかもしれません。でも、どこに何があるかを理解すれば、アプリを効率よく作れるようになりますよ。」

生徒

「それぞれのフォルダにはどんな意味があるんですか?」

先生

「それでは、Laravelプロジェクトの構造をひとつひとつ解説していきましょう!」

1. Laravelのプロジェクト全体構造とMVCモデルの基本

1. Laravelのプロジェクト全体構造とMVCモデルの基本
1. Laravelのプロジェクト全体構造とMVCモデルの基本

Laravel(ララベル)は、PHPで開発された世界的に人気の高いWebアプリケーションフレームワークです。プロジェクトを作成すると、多くのフォルダが自動生成されますが、これらは「どこに何を書くか」というMVC(モデル・ビュー・コントローラ)という設計思想に基づいたルールで整理されています。

プログラミング未経験の方にとって、この構造は少し難しく感じるかもしれません。そこで、初心者の方でもイメージしやすいように、Laravelの仕組みを「レストランの運営」に例えてみましょう。

役割 レストランでの例え Laravelでの役割(ディレクトリ)
コントローラ 注文を取るウェイター app/Http/Controllers(命令を出す)
モデル 食材や在庫を管理する倉庫番 app/Models(データの管理)
ビュー 盛り付けられた料理(見た目) resources/views(画面表示)

例えば、ユーザーが「おすすめ商品の一覧を見たい」とリクエスト(注文)した場合、コントローラがその指示を受け取り、モデルにデータを依頼して、最終的にビューがきれいな画面としてユーザーに届けます。この役割分担がしっかりしているため、Laravelは大規模な開発でも混乱せずに進めることができるのです。

ここがポイント: 初心者のうちは、すべてを覚えようとせず「役割ごとに部屋(フォルダ)が決まっているんだな」と理解するだけで十分です。

それでは、それぞれのディレクトリが具体的にどのような役割を持っているのか、詳しく見ていきましょう。

2. app/ フォルダ

2. app/ フォルダ
2. app/ フォルダ

app/はLaravelアプリケーションの心臓部(中心)となる非常に重要な場所です。ここには、アプリケーションの主要な動きを定義するビジネスロジックが格納されています。

例えば、「ネットショップで注文を受ける」「SNSでいいね!を反映させる」といった、アプリの機能そのものを実現するコードがここに集まります。プログラミング未経験の方でも、このフォルダの中にある「Http」「Models」の2つを意識するだけで、Laravelの仕組みがぐっと理解しやすくなります。

???? 初心者向けの例え話:レストランの仕組み

Laravelの処理はよくレストランに例えられます。app/フォルダはその厨房のような役割です。

  • Http/(ウェイター): お客さん(ユーザー)からの注文(リクエスト)を受け取り、適切にさばきます。
  • Models/(食材倉庫): 必要なデータ(食材)を取り出したり、新しく保存したりします。

代表的な中身の解説

  • Http/Controllers/コントローラが入ります。Webブラウザからの「このページを見せて!」という要求を受け取り、どのデータを表示するかを判断する「司令塔」の役割です。
  • Models/モデルが入ります。データベース(情報の保管庫)と直接やり取りを行い、データの登録・更新・削除を担当します。

簡単なコードサンプル

例えば、Userモデルを使って「全てのユーザー情報を取得する」という処理は、内部的に以下のようなシンプルなイメージで書かれます(実際はコントローラ等に記述します)。


// 全てのユーザーデータをデータベースから取ってくる
$users = User::all();

// 取得したデータを画面に表示する
foreach ($users as $user) {
    echo $user->name . 'さん、こんにちは!';
}

実行結果のイメージ:


田中さん、こんにちは!
佐藤さん、こんにちは!
鈴木さん、こんにちは!

このように、app/フォルダ内のプログラムが動くことで、データベースに保存された名前を画面に呼び出し、挨拶を添えて表示するといった「アプリらしい動き」が可能になります。まずは「アプリの脳みそはここに詰まっている」と覚えておきましょう。

3. routes/ フォルダ

3. routes/ フォルダ
3. routes/ フォルダ

routes/フォルダには、WebサイトのURLとその処理内容を結びつけるルーティングという設定が書かれています。

たとえば、「/homeというURLにアクセスされたら、ホーム画面を表示する」というような決まりごとをここに書きます。

  • web.php:通常のWeb画面のルートを記述
  • api.php:スマホアプリや他システムとのやり取りに使うAPIのルート

4. resources/ フォルダ

4. resources/ フォルダ
4. resources/ フォルダ

resources/は、ユーザーに見せる画面の見た目を作る場所です。

  • views/:HTMLテンプレートが入っていて、Blade(ブレード)テンプレートと呼ばれる仕組みで画面を作ります。
  • lang/:日本語や英語など、多言語対応のテキストを管理します。

5. public/ フォルダ

5. public/ フォルダ
5. public/ フォルダ

public/は、インターネットからアクセスされる公開用のフォルダです。

この中にあるindex.phpがアプリの入り口になります。また、CSSファイルや画像ファイル、JavaScriptなどのファイルもここに置きます。

6. config/ フォルダ

6. config/ フォルダ
6. config/ フォルダ

config/には、Laravelアプリ全体の設定ファイルが入っています。

例えば、「メールはどこから送るか」「アプリの名前は何か」といった情報をここで設定できます。

7. database/ フォルダ

7. database/ フォルダ
7. database/ フォルダ

database/には、データベースに関する情報がまとめられています。

  • migrations/:テーブル(表)の構造を定義するファイル
  • seeders/:初期データを登録するファイル

たとえば「ユーザーという表を作りたい」と思ったら、ここにファイルを作って定義します。

8. vendor/ フォルダ

8. vendor/ フォルダ
8. vendor/ フォルダ

vendor/は、Laravelやその他の外部ライブラリが自動でインストールされる場所です。

開発者が直接この中を触ることはあまりなく、裏方でLaravelを支えるフォルダです。

9. .envファイル(ドットエンブ)

9. .envファイル(ドットエンブ)
9. .envファイル(ドットエンブ)

.envファイルは、アプリケーションの環境ごとの設定を行う場所です。

たとえば、開発中はローカルのデータベース、本番環境では本番用のデータベース、というように切り替えができます。

ファイル名の先頭が「.(ドット)」になっているのは隠しファイルの意味です。

10. artisanコマンド

10. artisanコマンド
10. artisanコマンド

Laravelでは、artisan(アーティザン)というコマンドを使って、さまざまな作業を簡単に実行できます。

例えば「コントローラを作る」「データベースの設定を反映する」といった作業を、コマンドで一瞬でできます。

Windowsの場合はコマンドプロンプト、Macならターミナルを開いて、次のように入力します:


php artisan list

このコマンドで、使える命令一覧を確認できます。

テキスト部分の文字数:2806文字

まとめ

まとめ
まとめ

Laravelのプロジェクト構造は最初に目にすると複雑に感じられますが、それぞれの役割を丁寧に見ていくと自然に整理された仕組みであることが分かります。初心者がつまずきやすい点を中心に振り返りながら、改めて各フォルダの意味や開発においてどのように使われるのかを理解することで、Laravelの学習がより進めやすくなります。とくに、appフォルダに含まれるビジネスロジックの構造、routesフォルダにおけるURLと処理の結びつき、resourcesフォルダが担う画面設計の重要性などは、実際のアプリ開発で繰り返し触れる要素となります。また、publicフォルダが外部公開される静的ファイルの置き場であること、configフォルダでアプリ全体の設定を細かく制御できること、databaseフォルダにあるマイグレーションやシーダーがデータベース管理の基礎になることなどは、Laravelを扱う上で欠かせない知識です。さらに、vendorフォルダにはフレームワークを動かすための膨大なライブラリが含まれているため、内部構造を無理に触らずに仕組みとして理解しておくことが大切です。加えて、環境設定を切り替えるためのenvファイルは、開発環境と本番環境を柔軟に使い分けるための中心的な役割を果たします。最後に、artisanコマンドがもたらす生産性の高さもあらためて注目すべき点です。さまざまな作業を短いコマンドで実行できるため、画面を介した作業よりも素早く正確に処理を進めることができます。このように、Laravelのプロジェクト全体構造は、個々のフォルダがそれぞれの役割を持ちながら協力して動作することで、安定して開発できる仕組みを提供しています。ここで整理した情報を繰り返し確認しながら理解を深めることで、より円滑にアプリケーションを構築できるようになります。

サンプルコードで理解を深めよう

Laravelのプロジェクト構造をより実感するために、シンプルなルーティングとコントローラのコード例を紹介します。routesフォルダのwebphpにルートを追加し、対応するコントローラを作成すると、プロジェクトの仕組みが具体的に理解しやすくなります。


Route::get('/sample', [SampleController::class, 'index']);

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SampleController extends Controller
{
    public function index()
    {
        return view('sample');
    }
}

このようなコードを実際に作成してみることで、appフォルダの中にあるコントローラの役割や、resourcesフォルダに用意するビューの意味がより明確になります。フォルダ構造が理解できていると、どこにどのファイルを置けばよいのか迷わず作業できるため、学習効率も大きく向上します。

先生と生徒の振り返り会話

生徒

「最初はフォルダが多すぎて難しく感じていたのですが、ひとつずつ役割を知ると意外と整理されているんだと分かりました。」

先生

「そのとおりですよ。Laravelは開発しやすくするために明確な構造が用意されています。使い慣れてくれば自然に理解が深まっていきます。」

生徒

「特にappフォルダとroutesフォルダの関係がつかめたのがよかったです。コードを書くときに迷わなくなりそうです。」

先生

「それはよい気付きですね。resourcesフォルダやconfigフォルダなども触れていくと、さらに理解が深まりますよ。」

生徒

「artisanコマンドも便利だと感じました。作業のスピードがかなり上がりますね。」

先生

「その調子です。今回学んだプロジェクト構造を心に留めておけば、Laravelでアプリを作るときに大きな助けになりますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Laravelのプロジェクト構造が複雑に見えるのはなぜですか?初心者でも理解できますか?

Laravelのプロジェクト構造が複雑に見えるのは、最初から多くのフォルダとファイルが生成されるためです。しかし、それぞれのフォルダが役割ごとに整理されているため、初心者でも仕組みを知れば理解できます。appフォルダ、routesフォルダ、resourcesフォルダといった基本要素を順番に覚えると全体がわかりやすくなります。

Laravelのappフォルダにはどんなファイルが入っていて何に使われますか?

Laravelのappフォルダには、アプリケーションの中心となるビジネスロジックが含まれています。Httpフォルダにはコントローラが入り、Webリクエストの処理を行います。Modelsフォルダにはデータベースとやり取りするモデルが格納され、データ管理の基本となります。
カテゴリの一覧へ
新着記事
New1
Symfony
Symfonyのルーティング構成の基本を完全解説!初心者向けにYAML・PHP・アノテーション方式をやさしく紹介
New2
Laravel
Laravelのルートグループの使い方!初心者でもわかるprefixやミドルウェアの設定方法
New3
PHP
PHPのswitch文の使い方!多くの条件分岐をスッキリ書く方法と注意点
New4
Symfony
Symfony学習に役立つおすすめドキュメント・教材・リソース一覧【初心者向け】
人気記事
No.1
Java&Spring記事人気No1
PHP
PHPで文字列を結合する方法!ドット演算子と代入演算子の使い方を徹底解説
No.2
Java&Spring記事人気No2
PHP
PHPのif文の使い方を完全ガイド!初心者でもわかる条件分岐の基本
No.3
Java&Spring記事人気No3
Symfony
Symfonyで翻訳(i18n)機能を使う方法を解説!初心者にもわかる国際化対応の基本
No.4
Java&Spring記事人気No4
Laravel
Laravelのresponse()関数の使い方を完全ガイド!初心者でもわかるレスポンス制御とHTTPレスポンスの基本
No.5
Java&Spring記事人気No5
CodeIgniter
CodeIgniterルーティングを完全攻略!正規表現でURLを自由自在に操る方法
No.6
Java&Spring記事人気No6
Laravel
LaravelのAPIルーティングを設定する方法!初心者でもわかるapi.phpの使い方
No.7
Java&Spring記事人気No7
Laravel
LaravelでHello Worldを表示する方法を完全解説!初心者向けにルーティングと画面表示をやさしく説明
No.8
Java&Spring記事人気No8
PHP
PHPのswitch文の使い方!多くの条件分岐をスッキリ書く方法と注意点