Laravelプロジェクトを触っていて、トレイトが必要だ。
テストはこっちのフォルダが良いよ。
シーダーを使うと良いよ!
など手引みたいなものがちょいちょいできてた。
全体像を知らずにその時その時で情報を拾ってきたわけだ。
全体がどういうファイル構成なのかこの際簡単にまとめた。
プロジェクト直下のざっくりツリー
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)resources/css/, resources/js/ (Vite ソース) |
- ビュー編集 → welcome.blade.php など- スタイル/JS → npm run dev でビルド |
画面の見た目・JS 挙動を変更 |
| DB のテーブルを作成・変更したい | database/migrations/ |
php artisan make:migration create_posts_tablephp artisan migrate
|
DDL(構造)をコードで管理 |
| 初期データを投入したい |
database/seeders/database/factories/
|
php artisan make:seeder PostsTableSeederphp artisan db:seed
|
開発・テスト用のダミーデータ |
| アプリの挙動をテストしたい |
tests/Feature/, tests/Unit/
|
php artisan make:test UserTestphp artisan test
|
PHPUnit / Pest で自動テスト |
| 設定を変更したい |
config/ + .env
|
例: config/app.php の timezone 書き換え |
.env に値を置き、config/* で参照 |
| ルーティングを追加したい |
routes/web.php(Web)routes/api.php(API) |
Route::get('/foo', ...); |
URL と処理の紐付け |
| アップロードファイルを公開したい |
storage/app/public → public/storage
|
php artisan storage:link |
画像などをブラウザから参照可能に |
覚え方
画面系は resources/
データ構造は database/migrations
ダミー投入は seeders/factories
品質保証は tests/。