ディレクトリ構造
はじめに
デフォルトの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 コマンドを使用して作成できます。