Laravel 10 基本 ディレクトリ構造 学習ノート #2

Laravel 10 基本 ディレクトリ構造 学習ノート #2

Laravel 10 基本 ディレクトリ構造

参考

https://readouble.com/laravel/10.x/ja/structure.html

appディレクトリ

アプリケーションのコアコードを配置。アプリケーションのほとんどのクラスは、このディレクトリの中に設定される。

bootstrapディレクトリ

フレームワークを初期起動処理するapp.phpファイルを設置。このディレクトリには、ルートやサービスのキャッシュファイルなど、パフォーマンスを最適化するためのフレームワークで生成されたファイルを含むcacheディレクトリも含んでいる。

通常、このディレクトリ内のファイルを変更する必要はありません。

configディレクトリ

アプリケーションの全設定ファイルを設置。全ファイルに目を通し、設定可能なオプションを確認。

databaseディレクトリ

データベースのマイグレーションとモデルファクトリ、初期値設定(シーディング)を配置。このディレクトリをSQLiteデータベースの設置場所にもなる。

publicディレクトリ

アプリケーションへの全リクエストの入り口となり、オートローディングを設定するindex.phpファイルがあります。また、このディレクトリにはアセット(画像、JavaScript、CSSなど)を配置。

resourcesディレクトリ

ビューや、CSS、JavaScriptなどのコンパイルしていない、素のアセットを格納。

routesディレクトリ

アプリケーションのすべてのルート定義を配置。デフォルトでルートファイルをいくつかLaravelは用意。web.php、api.php、console.php、channels.phpなど。

web.phpファイルは、

RouteServiceProviderがwebミドルウェアグループへ配置するルートを記述。これにより、セッション状態、CSRF保護、およびクッキー暗号化が提供される。アプリケーションがステートレスのRESTful APIを提供しない場合は、すべてのルートがweb.phpファイルでほぼ定義されるでしょう。

api.phpファイルは、

RouteServiceProviderがapiミドルウェアグループへ配置するルートを記述。これらのルートはステートレスであることが意図されているため、これらのルートを介してアプリケーションに入るリクエストは、トークンを介してで認証されることを意図しており、セッション状態にアクセスできません。

console.phpファイルは、

クロージャベースのコンソールコマンドをすべて定義する場所です。各クロージャはコマンドインスタンスと結合されるため、各コマンドのIOメソッドを操作する簡単なアプローチが可能。このファイルはHTTPルートを定義しませんが、アプリケーションへのコンソールベースのエントリポイント(ルート)を定義している。

channels.phpファイルは、

アプリケーションがサポートするすべてのイベントブロードキャストチャンネルを登録できる場所。

storageディレクトリ

ログ、コンパイル済みBladeテンプレート、ファイルベースのセッション、ファイルキャッシュ、およびフレームワークが作成したその他のファイルが含まれる。このディレクトリは、app、framework、logsディレクトリに分離される。appディレクトリは、アプリケーションが作成したファイルを保存するために使用できる。frameworkディレクトリは、フレームワークが作成したファイルとキャッシュを保存するために使用する。最後に、logsディレクトリにはアプリケーションのログファイルを保存。

storage/app/publicディレクトリは、

プロファイルアバターなど、一般にアクセス可能である必要のあるユーザー生成ファイルを保存するために使用。このディレクトリを指すシンボリックリンクをpublic/storageに作成する必要がある。php artisan storage:link Artisanコマンドを使用してリンクを作成。

testsディレクトリ

自動テストを設置。たとえば、PHPUnitユニットテストと機能テストは、はじめから提供される。各テストクラスには、Testという接尾辞を付ける必要がある。phpunitまたはphpvendor/bin/phpunitコマンドを使用してテストを実行できる。または、テスト結果をより詳細で美しい表現にしたい場合は、php artisan test Artisanコマンドを使用してテストを実行。

vendorディレクトリ

Composerによる依存パッケージが配置。