Laravelでプロジェクトを作成すると自動で複数のディレクトリ とファイルが作成される。
いじる必要のないディレクトリを知るなど理解を深める。
よく触るディレクトリ
- app (コントローラーがある)
- config (環境設定)
- database (マイグレーションファイル)
- public (画像やファビコンなど)
- resources (ビュー)
- routes (ルーティング)
あまり触らないディレクトリ
- bootstrap (フレームワークの自動処理)
- storage (コンパイル後のファイル)
- tests (テスト用)
- vender (composerの依存ファイル)
最初から存在するか、コマンドやコンパイルで自動生成されるファイルが入る。
appディレクトリ
artisanコマンドによって生成されたディレクトリが配置される。
ほぼすべてのクラスがこの中にある。
・make
artisanコマンドを実行するとファイルがここに作成される。(make:job
でjobクラスが生成される)
・Console
ディレクトリ
make:command
で作成した、カスタムのartisanコマンドが保存される。
・Exceptions
ディレクトリ
例外処理を記述したファイルを保存する。
例外処理のログやレンダリングを変更する場合は、Handlerクラスを変更する。
・Http
ディレクトリ
コントローラー、ミドルウェア、リクエストが保存される。
・Providers
ディレクトリ
リクエストに対する対応方法を記載したファイルが保存されている。
デフォルトで必要なファイルが保存されている。必要に応じて追加可能。
・Models
ディレクトリ
データベースを操作するためのeloquent modelクラスが保存されている。
DBの各テーブルに対応するモデルがあり、クエリを投げてDB操作ができるようになる。
・Broadcasting
ディレクトリ
make:channel
コマンドで生成したクラスが保存される。
デフォルトでは存在せず、コマンド実行時に生成される。
・Events
ディレクトリ
event:generated
やmake:event
コマンドで生成したイベントクラスが保存される。
デフォルトでは存在せず、コマンド実行時に生成される。
・Mail
ディレクトリ
make:mail
コマンドで生成したクラスが保存される。
デフォルトでは存在せず、コマンド実行時に生成される。
Mailオブジェクトには、Mail::send
メソッドで実行するロジックが保存されている。
bootstrapディレクトリ
基本触らないディレクトリ。
app.php
はフレームワークの自動処理を行うためのファイル。
また、ページ表示の最適化のためのcache
もここに保存される。
configディレクトリ
すべての環境設定ファイルがあるディレクトリ。
▼例:database.php
DBに何を使うかを指定できる。
databaseディレクトリ
DBを構築するための、マイグレーションファイルなどが設置される。
DBにSQLiteを使う場合は、DBとしても使える。
Publicディレクトリ
ここのindex.php
はすべてのリクエストのエントリーポイントとなる。
また、クローラに指示を出すrobots.txt
や、ファビコンもこのディレクトリにある。
イメージもこのPublicディレクトリ内に保存する。(フォルダ名はimgやimagesが一般的)
Resourcesディレクトリ
公開用のビュー(.blade.php)やリソースがあるファイル。
言語ファイルやcss, jsなどのコンパイル前のリソースもここに入る。
Routesディレクトリ
ルートを定義したファイルが保存されている。
・web.php
基本的にほぼすべてのルーティングをここに記載する。
セッション情報を保存しない、statelessやRESTfull APIの場合は除く。
Storageディレクトリ
コンパイル後のブレードテンプレート、
ログやセッション関連ファイル、キャッシュファイルなどが保存される。
・appディレクトリ
アプリによって生成されたファイルなどが保存される。
・framework
キャッシュなどが保存される。
・logs
ログファイルが保存される。
testsディレクトリ
テスト用のファイルが保存されている。
php artisan test
でテストを実行できる。
vendorディレクトリ
composerの依存ファイルが保存されている。
基本いじらない。