ディレクトリ構造がいまいちよくわからないまま
すでに書かれているファイルを参考に
見よう見まねで書いているので
どこに何が配置されるのか
ちゃんとわかりたくてまとめてみました。
環境
macOS Sonoma v14.5
docker desktop for mac v4.37.2
新規作成する
laravel 11.xのプロジェクトをlaravel sailを利用して作成しました
アップグレードによりかなり構成ファイルが減ったらしいです
Laravel 11 introduces a new default application structure with fewer default files. Namely, new Laravel applications contain fewer service providers, middleware, and configuration files.
https://laravel.com/docs/11.x/upgrade#application-structure
作成直後のlaravelディレクトリ構成
ルートディレクトリ = プロジェクトはcomposer.jsonがあるフォルダを指します
*(アスタリスク)がついているphpファイルは以下のコマンドで作成できます
sail artisan make:<すべて小文字に変換したフォルダ名の単数形> <任意のファイル名(拡張子不要)>
# 例: sail artisan make:model dummy
. ・・ルートディレクトリ
app ・・リクエスト時の処理
├── Http
│ └── Controllers
│ └── *.php
├── Models
│ └── *.php
└── Providers
└── *.php
bootstrap ・・プロジェクト全体の設定
├── cache(自動作成される ※.envにあるAPP_ENVを変更する際は削除したほうがいいこともある)
├── app.php
└── providers.php
config ・・定数、設定ファイル
├── app.php
├── auth.php
├── cache.php
├── database.php
├── filesystems.php
├── logging.php
├── mail.php
├── queue.php
├── services.php
└── session.php
database ・・DBテーブル定義、データ登録など
├── factories
│ └── *.php
├── migrations
│ └── *.php
├── seeders
│ └── *.php
├── database.sqlite(sailではデフォルトがsqliteのためファイルが作成される、ほかの接続先に変更する場合不要になる)
└── .gitignore
public ・・初回アクセス時に処理される(ほとんど変更することはない)
├── .htaccess
├── favicon.ico
├── index.php
└── robots.txt
resources ・・webページに出力する
├── css
│ └── *.css
├── js
│ └── *.js
└── views
└── *.blade.php
routes ・・ルーティング
├── console.php
└── web.php
storage ・・ファイル保存先(デフォルト)
├── app(処理で作成したファイルなど)
│ └── *
├── framework(laravel側の処理により自動作成されたもの、およびテストで作成したダミーデータの格納先)
│ └── *
└── logs
└── laravel.log
tests ・・テストコード
├──Feature
│ └── *.php
├──Unit
│ └── *.php
│ (コマンドで作成する際はオプション`--unit`が必要 `sail artisan make:test --unit <任意のファイル名(拡張子不要)>`)
└──TestCase.php
vendor ・・バッケージフォルダ(ほとんど編集することはない)
.editorconfig
.env
.env.example
.gitattributes
.gitignore
artisan
composer.json
composer.lock
docker-compose.yml
package.json
phpunit.xml
postcss.config.js
README.md
tailwind.config.js
vite.config.js
補足
ファイル作成コマンドを使えばディレクトリ誤りによるエラーは発生しづらくなります。
# すべての利用可能なコマンド一覧を出力する
sail artisan list