LoginSignup
1
3

More than 3 years have passed since last update.

【Laravel】ディレクトリ構造の理解。どれが使うディレクトリ?各ディレクトリの意味。

Last updated at Posted at 2021-01-13

Laravelでプロジェクトを作成すると自動で複数のディレクトリ とファイルが作成される。

いじる必要のないディレクトリを知るなど理解を深める。

image.png

よく触るディレクトリ

  • app   (コントローラーがある)
  • config   (環境設定)
  • database  (マイグレーションファイル)
  • public   (画像やファビコンなど)
  • resources (ビュー)
  • routes  (ルーティング)


あまり触らないディレクトリ

  • bootstrap (フレームワークの自動処理) 
  • storage  (コンパイル後のファイル)
  • tests   (テスト用)
  • vender  (composerの依存ファイル)

最初から存在するか、コマンドやコンパイルで自動生成されるファイルが入る。


appディレクトリ

artisanコマンドによって生成されたディレクトリが配置される。

ほぼすべてのクラスがこの中にある。

image.png

make artisanコマンドを実行するとファイルがここに作成される。(make:jobでjobクラスが生成される)

Consoleディレクトリ
make:commandで作成した、カスタムのartisanコマンドが保存される。

Exceptionsディレクトリ
例外処理を記述したファイルを保存する。

例外処理のログやレンダリングを変更する場合は、Handlerクラスを変更する。

Httpディレクトリ
コントローラー、ミドルウェア、リクエストが保存される。

Providersディレクトリ
リクエストに対する対応方法を記載したファイルが保存されている。

デフォルトで必要なファイルが保存されている。必要に応じて追加可能。

Modelsディレクトリ
データベースを操作するためのeloquent modelクラスが保存されている。

DBの各テーブルに対応するモデルがあり、クエリを投げてDB操作ができるようになる。

Broadcastingディレクトリ
make:channelコマンドで生成したクラスが保存される。
デフォルトでは存在せず、コマンド実行時に生成される。

Eventsディレクトリ
event:generatedmake:eventコマンドで生成したイベントクラスが保存される。
デフォルトでは存在せず、コマンド実行時に生成される。

Mailディレクトリ
make:mailコマンドで生成したクラスが保存される。
デフォルトでは存在せず、コマンド実行時に生成される。

Mailオブジェクトには、Mail::sendメソッドで実行するロジックが保存されている。


bootstrapディレクトリ

基本触らないディレクトリ。

image.png

app.phpはフレームワークの自動処理を行うためのファイル。
また、ページ表示の最適化のためのcacheもここに保存される。


configディレクトリ

すべての環境設定ファイルがあるディレクトリ。

image.png

▼例:database.php
DBに何を使うかを指定できる。


databaseディレクトリ

DBを構築するための、マイグレーションファイルなどが設置される。

image.png

DBにSQLiteを使う場合は、DBとしても使える。


Publicディレクトリ

ここのindex.phpはすべてのリクエストのエントリーポイントとなる。

image.png

また、クローラに指示を出すrobots.txtや、ファビコンもこのディレクトリにある。

イメージもこのPublicディレクトリ内に保存する。(フォルダ名はimgやimagesが一般的)


Resourcesディレクトリ

公開用のビュー(.blade.php)やリソースがあるファイル。

image.png

言語ファイルやcss, jsなどのコンパイル前のリソースもここに入る。


Routesディレクトリ

ルートを定義したファイルが保存されている。

image.png

web.php
基本的にほぼすべてのルーティングをここに記載する。

セッション情報を保存しない、statelessやRESTfull APIの場合は除く。


Storageディレクトリ

コンパイル後のブレードテンプレート、
ログやセッション関連ファイル、キャッシュファイルなどが保存される。

image.png

appディレクトリ
アプリによって生成されたファイルなどが保存される。

framework
キャッシュなどが保存される。

logs
ログファイルが保存される。


testsディレクトリ

テスト用のファイルが保存されている。

image.png

php artisan testでテストを実行できる。


vendorディレクトリ

composerの依存ファイルが保存されている。
基本いじらない。

image.png

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3