Laravelのディレクトリ構造
Laravelプロジェクトを新規作成すると、以下のようなディレクトリ構造が生成される。
project-name/
├── app/
├── bootstrap/
├── config/
├── database/
├── public/
├── resources/
├── routes/
├── storage/
├── tests/
└── vendor/
それぞれのディレクトリには明確な役割がある。
1. app/
app/
ディレクトリは、アプリケーションの中核となるコードを格納する場所だ。主なサブディレクトリは次の通り。
- Models: データベースとやり取りするEloquentモデルを格納する。
- Http: コントローラ、ミドルウェア、リクエスト処理に関するクラスを配置する。
- Providers: アプリケーションサービスプロバイダを格納する。
2. bootstrap/
アプリケーションの初期設定が格納されるディレクトリだ。app.php
というファイルがあり、Laravelの起動プロセスを管理する。
3. config/
アプリケーションの設定ファイルが含まれている。データベース接続、メール設定、キャッシュ設定などがここにある。
4. database/
データベースに関するファイルを格納する。
- migrations: テーブルスキーマの定義ファイル。
- seeders: テストデータや初期データを登録するためのクラス。
5. public/
アプリケーションのエントリーポイントとなる index.php
が配置されるディレクトリだ。ブラウザからアクセス可能なファイル(CSS、JavaScript、画像など)もここに置かれる。
6. resources/
ビュー(Bladeテンプレート)、未コンパイルのCSSやJavaScriptファイル、翻訳ファイルなどを格納する。
7. routes/
アプリケーションのルーティング定義ファイルを格納する。
- web.php: ウェブ用ルート。
- api.php: API用ルート。
8. storage/
ファイルの保存やログ、キャッシュなど、アプリケーションで生成されるデータを格納する。
9. tests/
自動テスト用のファイルを格納する。
- Feature: 機能テスト用のファイル。
- Unit: 単体テスト用のファイル。
10. vendor/
Composerでインストールしたライブラリが格納される。このディレクトリは通常、直接編集することはない。