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_table php artisan migrate
|
DDL(構造)をコードで管理 |
初期データを投入したい |
database/seeders/ database/factories/
|
php artisan make:seeder PostsTableSeeder php artisan db:seed
|
開発・テスト用のダミーデータ |
アプリの挙動をテストしたい |
tests/Feature/ , tests/Unit/
|
php artisan make:test UserTest php 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/
。