Laravelのディレクトリ構成を図解で解説!初心者でも迷わないプロジェクト構造

こんにちは😊 本記事では、Laravelのディレクトリ構成について初心者向けに丁寧に解説します。初めてLaravelを使うときに「フォルダが多すぎてどこを触ればいいの?」と迷う方が多いですよね。

そこで今回は図解と実例を交えて、Laravel初心者が最初に理解すべきディレクトリ構造を徹底的に説明していきます✨ さらに、よく使うルーティングの場所やコード例も紹介します。

Laravelのプロジェクト構造とは?

Laravelをインストールすると、多くのフォルダとファイルが自動生成されます。これがプロジェクト構造です。

この構造を理解しておくことで、どのファイルを編集すればよいか迷わなくなります👍


myapp/
├── app/
├── bootstrap/
├── config/
├── database/
├── public/
├── resources/
├── routes/
├── storage/
├── tests/
└── vendor/
      

このように、ルート直下に複数のディレクトリがあります。では一つずつ見ていきましょう😊

app ディレクトリ

アプリケーションの中核部分が入っている場所です。コントローラやモデルがここに配置されます。


app/
├── Console/
├── Exceptions/
├── Http/
│   ├── Controllers/
│   └── Middleware/
├── Models/
└── Providers/
      

例えば、ルーティングから呼び出されるコントローラapp/Http/Controllers に配置されます。


namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HelloController extends Controller
{
    public function index() {
        return "Hello Laravel! 🎉";
    }
}
      

このコントローラをルーティングで呼び出すときは routes/web.php に以下を追記します。


Route::get('/hello', [App\Http\Controllers\HelloController::class, 'index']);
      

これで /hello にアクセスすると「Hello Laravel!」と表示されます😊

bootstrap ディレクトリ

bootstrap/ はアプリケーションの初期設定が入っている場所です。通常、初心者が直接編集することはあまりありません。

ただしキャッシュ関連の設定が格納されるので「高速化の仕組みがここにあるんだな」と理解しておくと良いでしょう⚡

config ディレクトリ

アプリケーションの設定ファイルが格納されています。例えばデータベース接続の設定やキャッシュの設定がここにまとめられています。

初心者が最初に触れるのは config/app.phpconfig/database.php あたりでしょう。


// config/app.php の一部
'timezone' => 'Asia/Tokyo',
'locale' => 'ja',
      

このようにアプリの基本設定を日本向けに調整できます🗾

database ディレクトリ

データベース関連のファイルが入っています。

  • migrations/:テーブル定義
  • factories/:ダミーデータ生成
  • seeders/:初期データ投入

例えば、マイグレーションを使うとテーブルを簡単に作成できます。


php artisan make:migration create_posts_table
      

// database/migrations/xxxx_create_posts_table.php
public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('body');
        $table->timestamps();
    });
}
      

php artisan migrate を実行するとテーブルが作成されます📊

public ディレクトリ

ブラウザから直接アクセスできるファイルを配置する場所です。CSSやJavaScript、画像ファイルなどがここに置かれます。

index.php もここにあり、Laravelアプリの入り口となります🚪

resources ディレクトリ

ビューやフロントエンドのファイルが入っています。

  • views/:Bladeテンプレート
  • lang/:言語ファイル
  • js/ & css/:フロントエンド資産

例えば resources/views/welcome.blade.php を編集するとトップページを変更できます。


@extends('layouts.app')

@section('content')
  <h1>Laravelへようこそ 🎉</h1>
@endsection
      

routes ディレクトリ

Laravelでルーティングを定義する場所です。初心者が最もよく触るフォルダの一つです。

  • web.php:Webルート
  • api.php:APIルート
  • console.php:コマンドライン用

// routes/web.php
Route::get('/', function () {
    return view('welcome');
});
      

このように簡単にルートを定義できます😊

storage ディレクトリ

ログやキャッシュ、アップロードされたファイルが保存されます。

初心者のうちは「ログはここに出力されるんだな」と理解しておくと便利です📂

tests ディレクトリ

テストコードを格納するフォルダです。初心者の段階ではあまり触らないかもしれませんが、学習が進んだら重要になります。

自動テストを導入するとアプリの品質を保ちやすくなります🧪

vendor ディレクトリ

composer install でインストールされたライブラリが格納されます。基本的に直接編集することはありません。

「外部パッケージがここに入るんだな」と理解しておけばOKです。