Laravel 11？ ― 初期フォルダを超ざっくりまとめた

Laravelプロジェクトを触っていて、トレイトが必要だ。
テストはこっちのフォルダが良いよ。
シーダーを使うと良いよ！
など手引みたいなものがちょいちょいできてた。

全体像を知らずにその時その時で情報を拾ってきたわけだ。

全体がどういうファイル構成なのかこの際簡単にまとめた。

---

## プロジェクト直下のざっくりツリー

```plaintext
app/          # アプリ本体（コントローラ・モデルなど）
bootstrap/    # 起動処理 & キャッシュ
config/       # 各種設定ファイル
database/     # マイグレーション / シーダー / ファクトリ
public/       # ドキュメントルート（index.php・公開アセット）
resources/    # ビュー(Blade) & 未ビルドの CSS/JS, 翻訳
routes/       # URL ルーティング定義
storage/      # ログ・キャッシュ・アップロード
tests/        # 自動テスト
vendor/       # Composer 依存ライブラリ

```

## 各フォルダの役割

### app/
- **主な中身**
  - `Http/` — Controller / Middleware
  - `Models/` — Eloquent
  - `Providers/` — Service Provider
- **メモ**
  - ビジネスロジックは基本ここ  
  - `php artisan make:*` でクラスを自動生成  
  - 名前空間は `App\`（PSR-4 オートロード）

---

### bootstrap/
- **主な中身**
  - `app.php` — 起動スクリプト
  - `cache/` — 設定・ルートキャッシュ
- **メモ**
  - フレームワーク初期化本部  
  - `php artisan config:cache` 等でキャッシュ生成

---

### config/
- **主な中身**
  - `app.php`, `database.php` など 20 ファイル以上
- **メモ**
  - `.env` と連携して設定を一元管理  
  - 「コードに直書きしない」が Laravel 流儀

---

### database/
- **主な中身**
  - `migrations/` — DDL（Data Definition Language）
      - テーブルや列、構造を定義・変更するSQL

  - `seeders/` — 初期データ  
  - `factories/` — ダミーデータ生成
- **メモ**
  - スキーマもデータもコードで履歴管理  
  - `php artisan migrate:fresh --seed` で一括リセット可

---

### public/
- **主な中身**
  - `index.php` — エントリポイント
- **メモ**
  - Web サーバのドキュメントルート  
  - 直接アクセスできるのは **このフォルダ配下だけ**

---

### resources/
- **主な中身**
  - `views/` — Blade テンプレート  
  - `css/`, `js/` — Vite ソース  
  - `lang/` — 翻訳ファイル
- **メモ**
  - UI ＆フロント資産を担当  
  - `@vite('resources/css/app.css')` などで読み込み

---

### routes/
- **主な中身**
  - `web.php` — ブラウザ用ルート  
  - `console.php` — Artisan コマンド用ルート
- **メモ**
  - URL ↔ 処理を紐付け  
  - API が欲しければ `php artisan install:api` で `api.php` 追加

---

### storage/
- **主な中身**
  - `logs/` — `laravel.log`  
  - `framework/` — セッション・ビューキャッシュ等  
  - `app/public` — 公開ファイル
- **メモ**
  - 実行時生成ファイル置き場  
  - `php artisan storage:link` で `public/storage` に公開

---

### tests/
- **主な中身**
  - `Feature/`, `Unit/`
- **メモ**
  - PHPUnit / Pest どちらも OK  
  - `php artisan test` で実行

---

### vendor/
- **主な中身**
  - Composer パッケージ群（Laravel 本体含む）
- **メモ**
  - 直接編集は厳禁  
  - 依存は `composer update` で自動更新




# よく使うコマンド早見表

# マイグレーション
php artisan migrate            # 反映
php artisan migrate:rollback   # 1つ戻す

# コントローラ
php artisan make:controller ArticleController --resource

# フロントアセット（Vite）
npm run dev     # HMR 付き
npm run build   # minify → public/build

# storage 公開
php artisan storage:link

# テスト
php artisan test               # 全テスト
php artisan test --filter=User # 特定テストだけ

# Laravel 作業チャート

| やりたいこと | 触る場所 | 代表ファイル / コマンド | 補足 |
|--------------|----------|-------------------------|----------|
| **UI をいじりたい** | `resources/views/` (Blade)<br>`resources/css/`, `resources/js/` (Vite ソース) | - ビュー編集 → `welcome.blade.php` など<br>- スタイル／JS → `npm run dev` でビルド | 画面の見た目・JS 挙動を変更 |
| **DB のテーブルを作成・変更したい** | `database/migrations/` | `php artisan make:migration create_posts_table`<br>`php artisan migrate` | DDL（構造）をコードで管理 |
| **初期データを投入したい** | `database/seeders/`<br>`database/factories/` | `php artisan make:seeder PostsTableSeeder`<br>`php artisan db:seed` | 開発・テスト用のダミーデータ |
| **アプリの挙動をテストしたい** | `tests/Feature/`, `tests/Unit/` | `php artisan make:test UserTest`<br>`php artisan test` | PHPUnit / Pest で自動テスト |
| **設定を変更したい** | `config/` + `.env` | 例: `config/app.php` の `timezone` 書き換え | `.env` に値を置き、`config/*` で参照 |
| **ルーティングを追加したい** | `routes/web.php`（Web）<br>`routes/api.php`（API） | `Route::get('/foo', ...);` | URL と処理の紐付け |
| **アップロードファイルを公開したい** | `storage/app/public` → `public/storage` | `php artisan storage:link` | 画像などをブラウザから参照可能に |

**覚え方**  
**画面系**は `resources/`
**データ構造**は `database/migrations`
**ダミー投入**は `seeders/factories`
**品質保証**は `tests/`。