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の依存ファイルが保存されている。 基本いじらない。










