ディレクトリ構造
はじめに
デフォルトのLaravelアプリケーション構造は、大規模なアプリケーションや小規模なアプリケーションの両方に最適なスタート地点を提供することを意図しています。ただし、アプリケーションを好きなように整理することができます。Laravelは、クラスがどこにあっても構いません - Composerがクラスをオートロードできればほとんど制限を課しません。
Laravel初心者ですか?最初のLaravelアプリケーションの構築を歩みながら、フレームワークの実演ツアーを提供するLaravel Bootcampをチェックしてみてください。
ルートディレクトリ
Appディレクトリ
app
ディレクトリには、アプリケーションのコアコードが含まれています。このディレクトリについては近々詳しく調査しますが、ほとんどのクラスはこのディレクトリに含まれます。
ブートストラップディレクトリ
bootstrap
ディレクトリには、フレームワークをブートストラップするapp.php
ファイルが含まれています。このディレクトリには、ルートやサービスのキャッシュファイルなど、パフォーマンス最適化のためのフレームワーク生成ファイルが含まれています。
設定ディレクトリ
config
ディレクトリは、その名前が示すように、アプリケーションのすべての設定ファイルが含まれています。これらのファイルをすべて読んで、利用可能なすべてのオプションに精通することは素晴らしいアイデアです。
データベースディレクトリ
database
ディレクトリには、データベースのマイグレーション、モデルファクトリ、およびシードが含まれています。必要であれば、このディレクトリを使用してSQLiteデータベースを保持することもできます。
パブリックディレクトリ
public
ディレクトリには、すべてのリクエストのエントリーポイントであるindex.php
ファイルが含まれており、オートローディングを構成します。このディレクトリには、画像、JavaScript、CSSなどのアセットも含まれています。
リソースディレクトリ
resources
ディレクトリには、ビューと、CSSやJavaScriptなどの生のコンパイルされていないアセットが含まれています。
ルートディレクトリ
routes
ディレクトリには、アプリケーションのすべてのルート定義が含まれています。デフォルトでは、Laravelにはweb.php
とconsole.php
の2つのルートファイルが 含まれています。
web.php
ファイルには、Laravelがweb
ミドルウェアグループに配置するルートが含まれており、セッション状態、CSRF保護、およびクッキーの暗号化を提供します。アプリケーションがステートレスでRESTfulなAPIを提供していない場合、ほとんどのルートはおそらくweb.php
ファイルで定義されているでしょう。
console.php
ファイルは、クロージャベースのコンソールコマンドをすべて定義する場所です。各クロージャはコマンドインスタンスにバインドされ、各コマンドのIOメソッドとの簡単なやり取りを可能にします。このファイルはHTTPルートを定義していないものの、アプリケーションへのコンソールベースのエントリーポイント(ルート)を定義します。console.php
ファイルでスケジュールタスクを実行することもできます。
オプションで、install:api
および install:broadcasting
Artisan コマンドを使用して、API ルート (api.php
) およびブロードキャスト チャンネル (channels.php
) の追加ルートファイルをインストールすることができます。
api.php
ファイルにはステートレスであることが意図されているルートが含まれており、これらのルートを介してアプリケーションに入るリクエストは、トークンを介して認証されることが意図されており、セッション状態にアクセスすることはできません。
channels.php
ファイルでは、アプリケーションがサポートするすべての イベントブロードキャスト チャンネルを登録できます。
ストレージディレクトリ
storage
ディレクトリには、ログ、コンパイルされた Blade テンプレート、ファイルベースのセッション、ファイルキャッシュ、およびフレームワークによって生成されたその他のファイルが含まれています。このディレクトリは app
、framework
、logs
ディレクトリに分割されています。app
ディレクトリは、アプリケーションによって生成されたファイルを保存するために使用できます。framework
ディレクトリは、フレームワークによって生成されたファイルとキャッシュを保存するために使用されます。最後に、logs
ディレクトリにはアプリケーションのログファイルが含まれています。
storage/app/public
ディレクトリは、プロフィールのアバターや他の公開されるべきユーザー生成ファイルを保存するために使用できます。このディレクトリを指す public/storage
へのシンボリックリンクを作成する必要があります。このリンクは php artisan storage:link
Artisan コマンドを使用して作成できます。