こんにちは😊 本記事では、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.php
や config/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です。