Uncategorized

第1回:Laravelのフォルダ構成をざっくり理解しよう

yayoi

Laravelでアプリを作り始めたとき、最初に感じるのがこの疑問。

「……え、フォルダ多くない?どこに何を書けばいいの?」

私もLaravelでレシピ投稿サイトを作り始めたばかりの頃、「routes?controllers?models?viewってどこ?」と迷子になりました。でも、それぞれの役割をざっくりでも理解しておくと、開発がスムーズになります。

この記事では、Laravelのプロジェクトにある主なフォルダの役割や、実際によく使う場所を初心者目線で紹介していきます。

Laravelのプロジェクト構成をざっくり眺めてみよう

Laravelを新規でインストールした直後、プロジェクトの中にはたくさんのフォルダが並んでいます。でも、最初に全部を理解する必要はありません。

よく使うフォルダだけに絞って、まずは「どこを触るか」を知るところから始めましょう。

よく使うフォルダとその役割

以下の表は、Laravelを使ってレシピ投稿サイトを作っている私が、実際によく編集するフォルダとその役割をまとめたものです。

フォルダ名よく使うファイル例役割
routes/web.phpURLと処理のつながりを定義する(ルーティング)
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にアクセスすると、

  1. routes/web.php でルートが定義されていて
  2. RecipeControllerindex() メソッドが呼ばれ
  3. そこで view() 関数を使ってテンプレートが返される

…という流れです。

実際の私のプロジェクトの例

Laravelでレシピ投稿サイトを作る中で、私がよく触っているのは以下のファイルです:

  • routes/web.php:URLごとのルーティング定義
  • app/Http/Controllers/RecipeController.php:一覧・詳細・投稿・編集の処理を記述
  • resources/views/recipes/index.blade.php:一覧ページのHTMLテンプレート
  • app/Models/Recipe.phprecipes テーブルとつながっているモデル
  • database/migrations/XXXX_create_recipes_table.php:テーブル構造(例:レシピ名、画像、材料など)

実際に「レシピ投稿フォームを作る」「投稿内容を保存する」などの作業は、上記のファイルを中心に進めています。

最初は触らないでOKなフォルダたち

逆に、以下のフォルダは最初はあまり意識しなくてOKです。

フォルダ名説明
vendor/Laravel本体や外部ライブラリが入ってる場所(絶対に触らない)
storage/一時ファイルやログなどが自動で入る場所
bootstrap/Laravel起動時の設定関連。初心者は触らなくてOK
tests/テストコードを書く場所(慣れてきてからでも遅くない)

まとめ:まずは「よく使う場所」だけ覚えればOK

Laravelのフォルダ構成は一見複雑に見えますが、実際に日常的に使うのはごく一部です。

特に初心者のうちは、以下の順番で「構造の意味」を掴んでいくのがおすすめです:

  1. routes/web.php でURLのルートを定義する
  2. Controller で処理を記述する
  3. view で表示するテンプレートを作る
  4. Modelmigration でデータとやりとりする

次回は、1番最初に触ることになるルーティングについて、より詳しく見ていきます。

ABOUT ME
管理人(サンプル)
管理人(サンプル)
フリーランスWEBデザイナー
フリーランスWEBデザイナー。月間25万PVのブログサイトも運営しています。
記事URLをコピーしました