第1回:Laravelのフォルダ構成をざっくり理解しよう
Laravelでアプリを作り始めたとき、最初に感じるのがこの疑問。
「……え、フォルダ多くない?どこに何を書けばいいの?」
私もLaravelでレシピ投稿サイトを作り始めたばかりの頃、「routes?controllers?models?viewってどこ?」と迷子になりました。でも、それぞれの役割をざっくりでも理解しておくと、開発がスムーズになります。
この記事では、Laravelのプロジェクトにある主なフォルダの役割や、実際によく使う場所を初心者目線で紹介していきます。
Laravelのプロジェクト構成をざっくり眺めてみよう
Laravelを新規でインストールした直後、プロジェクトの中にはたくさんのフォルダが並んでいます。でも、最初に全部を理解する必要はありません。
よく使うフォルダだけに絞って、まずは「どこを触るか」を知るところから始めましょう。
よく使うフォルダとその役割
以下の表は、Laravelを使ってレシピ投稿サイトを作っている私が、実際によく編集するフォルダとその役割をまとめたものです。
フォルダ名 | よく使うファイル例 | 役割 |
---|---|---|
routes/ | web.php | URLと処理のつながりを定義する(ルーティング) |
app/Http/Controllers/ | RecipeController.php | 画面ごとの処理(表示・保存・編集など)を書く |
app/Models/ | Recipe.php | データベースのテーブルとやりとりするクラス |
resources/views/ | index.blade.php など | 実際のHTML表示部分(テンプレート)を書く |
database/migrations/ | 2024_xx_xx_create_recipes_table.php | テーブルの構造を定義してデータベースに反映させる |
public/ | storage/ , css/ , js/ | 公開用の画像やCSS、JSファイルなどを置く場所 |
フォルダの流れを図にするとこうなる
ざっくりイメージでいうと、Laravelの処理の流れはこうなります
[URLアクセス]
↓
[routes/web.php]
↓
[app/Http/Controllers/〇〇Controller.php]
↓
[resources/views/xxx.blade.php]
たとえば /recipes
というURLにアクセスすると、
routes/web.php
でルートが定義されていてRecipeController
のindex()
メソッドが呼ばれ- そこで
view()
関数を使ってテンプレートが返される
…という流れです。
実際の私のプロジェクトの例
Laravelでレシピ投稿サイトを作る中で、私がよく触っているのは以下のファイルです:
routes/web.php
:URLごとのルーティング定義app/Http/Controllers/RecipeController.php
:一覧・詳細・投稿・編集の処理を記述resources/views/recipes/index.blade.php
:一覧ページのHTMLテンプレートapp/Models/Recipe.php
:recipes
テーブルとつながっているモデルdatabase/migrations/XXXX_create_recipes_table.php
:テーブル構造(例:レシピ名、画像、材料など)
実際に「レシピ投稿フォームを作る」「投稿内容を保存する」などの作業は、上記のファイルを中心に進めています。
最初は触らないでOKなフォルダたち
逆に、以下のフォルダは最初はあまり意識しなくてOKです。
フォルダ名 | 説明 |
---|---|
vendor/ | Laravel本体や外部ライブラリが入ってる場所(絶対に触らない) |
storage/ | 一時ファイルやログなどが自動で入る場所 |
bootstrap/ | Laravel起動時の設定関連。初心者は触らなくてOK |
tests/ | テストコードを書く場所(慣れてきてからでも遅くない) |
まとめ:まずは「よく使う場所」だけ覚えればOK
Laravelのフォルダ構成は一見複雑に見えますが、実際に日常的に使うのはごく一部です。
特に初心者のうちは、以下の順番で「構造の意味」を掴んでいくのがおすすめです:
routes/web.php
でURLのルートを定義するController
で処理を記述するview
で表示するテンプレートを作るModel
やmigration
でデータとやりとりする
次回は、1番最初に触ることになるルーティングについて、より詳しく見ていきます。