Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説
生徒
「Laravelっていうフレームワークを使ってWebアプリを作りたいのですが、プロジェクトの中のフォルダがいっぱいあって混乱しています…」
先生
「Laravelは機能ごとにフォルダが分かれているので、最初は多く感じるかもしれません。でも、どこに何があるかを理解すれば、アプリを効率よく作れるようになりますよ。」
生徒
「それぞれのフォルダにはどんな意味があるんですか?」
先生
「それでは、Laravelプロジェクトの構造をひとつひとつ解説していきましょう!」
1. Laravelのプロジェクト全体構造とは?
Laravel(ララベル)は、PHPというプログラミング言語で作られたWebアプリケーションフレームワークです。Laravelで新しくプロジェクトを作ると、自動的にいくつものフォルダやファイルが作られます。これらはすべて、開発をしやすくするために決まったルールで整理されています。
フォルダ構造を簡単に例えると、ひとつの学校の中に教室が分かれていて、それぞれの教室で違う科目の授業をしているようなイメージです。
では、具体的なディレクトリ(フォルダ)の役割を見ていきましょう。
2. app/ フォルダ
app/はLaravelアプリケーションの中心となる場所です。ここには、主にビジネスロジック(アプリの中核となる処理)が含まれています。
例えば、「ユーザーを新規登録する」「商品を一覧で表示する」などの処理を担当します。
Http/:コントローラなどが入り、Webからのリクエスト(要求)を処理します。Models/:データベースとやり取りするモデル(データのかたまり)を管理します。
3. routes/ フォルダ
routes/フォルダには、WebサイトのURLとその処理内容を結びつけるルーティングという設定が書かれています。
たとえば、「/homeというURLにアクセスされたら、ホーム画面を表示する」というような決まりごとをここに書きます。
web.php:通常のWeb画面のルートを記述api.php:スマホアプリや他システムとのやり取りに使うAPIのルート
4. resources/ フォルダ
resources/は、ユーザーに見せる画面の見た目を作る場所です。
views/:HTMLテンプレートが入っていて、Blade(ブレード)テンプレートと呼ばれる仕組みで画面を作ります。lang/:日本語や英語など、多言語対応のテキストを管理します。
5. public/ フォルダ
public/は、インターネットからアクセスされる公開用のフォルダです。
この中にあるindex.phpがアプリの入り口になります。また、CSSファイルや画像ファイル、JavaScriptなどのファイルもここに置きます。
6. config/ フォルダ
config/には、Laravelアプリ全体の設定ファイルが入っています。
例えば、「メールはどこから送るか」「アプリの名前は何か」といった情報をここで設定できます。
7. database/ フォルダ
database/には、データベースに関する情報がまとめられています。
migrations/:テーブル(表)の構造を定義するファイルseeders/:初期データを登録するファイル
たとえば「ユーザーという表を作りたい」と思ったら、ここにファイルを作って定義します。
8. vendor/ フォルダ
vendor/は、Laravelやその他の外部ライブラリが自動でインストールされる場所です。
開発者が直接この中を触ることはあまりなく、裏方でLaravelを支えるフォルダです。
9. .envファイル(ドットエンブ)
.envファイルは、アプリケーションの環境ごとの設定を行う場所です。
たとえば、開発中はローカルのデータベース、本番環境では本番用のデータベース、というように切り替えができます。
ファイル名の先頭が「.(ドット)」になっているのは隠しファイルの意味です。
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でアプリを作るときに大きな助けになりますよ。」