Laravel-application-structure
Laravel-アプリケーション構造
Laravelのアプリケーション構造は、基本的にプロジェクトに含まれるフォルダー、サブフォルダー、およびファイルの構造です。 Laravelでプロジェクトを作成すると、次の画像に示すように、アプリケーション構造の概要がわかります。
ここに示すスナップショットは、Laravelのルートフォルダー、つまり laravel-project を参照しています。 さまざまなサブフォルダーとファイルが含まれます。 フォルダーとファイルの分析、およびそれらの機能的な側面を以下に示します-
App
これはアプリケーションフォルダであり、プロジェクトのソースコード全体が含まれています。 イベント、例外、ミドルウェア宣言が含まれます。 以下に説明するように、アプリフォルダはさまざまなサブフォルダで構成されています-
コンソール
コンソールには、Laravelに必要な職人コマンドが含まれています。 Commands という名前のディレクトリが含まれ、すべてのコマンドが適切な署名で宣言されます。 ファイル Kernal.php は、 Inspire.php で宣言されたコマンドを呼び出します。
Laravelで特定のコマンドを呼び出す必要がある場合は、このディレクトリで適切な変更を行う必要があります。
イベント
このフォルダーには、プロジェクトのすべてのイベントが含まれます。
イベントは、アクティビティをトリガーし、エラーまたは必要な検証を発生させ、柔軟性を高めるために使用されます。 Laravelはすべてのイベントを1つのディレクトリに保持します。 含まれるデフォルトのファイルは、すべての基本的なイベントが宣言されている event.php です。
例外
このフォルダーには、例外を処理するために必要なすべてのメソッドが含まれています。 また、すべての例外を処理する handle.php ファイルも含まれています。
Http
*Http* フォルダーには、コントローラー、ミドルウェア、およびアプリケーションリクエスト用のサブフォルダーがあります。 LaravelはMVC設計パターンに従っているため、このフォルダーには特定のディレクトリに対して定義されたモデル、コントローラー、ビューが含まれます。
- ミドルウェア*サブフォルダーには、フィルターメカニズムと応答と要求間の通信を含むミドルウェアメカニズムが含まれています。
*Requests* サブフォルダーには、アプリケーションのすべてのリクエストが含まれます。
Jobs
*Jobs* ディレクトリは、Laravelアプリケーションのキューに入れられたアクティビティを維持します。 基本クラスはすべてのジョブで共有され、1つの屋根の下にそれらを配置するための中央の場所を提供します。
リスナー
リスナーはイベントに依存し、イベントと例外を処理するために使用されるメソッドが含まれます。 たとえば、宣言された login イベントには LoginListener イベントが含まれます。
ポリシー
ポリシーは、承認ロジックを含むPHPクラスです。 Laravelには、このサブフォルダー内のポリシークラス内にすべての承認ロジックを作成する機能が含まれています。
プロバイダ
このフォルダーには、コアサーバーのイベントを登録し、Laravelアプリケーションを構成するために必要なすべてのサービスプロバイダーが含まれます。
ブートストラップ
このフォルダーには、すべてのアプリケーションブートストラップスクリプトが含まれます。 サブフォルダー、つまり cache が含まれ、Webアプリケーションのキャッシュに関連付けられたすべてのファイルが含まれます。 また、ブートストラップに必要なスクリプトを初期化する app.php ファイルを見つけることもできます。
設定
*config* フォルダーには、Laravelアプリケーションをスムーズに機能させるために必要なさまざまな構成と関連パラメーターが含まれています。 configフォルダー内に含まれるさまざまなファイルは、ここの画像に示されています。 ファイル名は、関連付けられている機能に従って機能します。
データベース
名前が示すように、このディレクトリにはデータベース機能のさまざまなパラメーターが含まれています。 以下の3つのサブディレクトリが含まれます-
- シード-データベースの単体テストに使用されるクラスが含まれています。
- 移行-このフォルダーは、Webアプリケーションで使用されるデータベースを移行するためのクエリに役立ちます。
- Factories -このフォルダーは、多数のデータレコードを生成するために使用されます。
パブリック
Laravelアプリケーションの初期化に役立つのはルートフォルダーです。 次のファイルとフォルダが含まれています-
- .htaccess -このファイルはサーバー構成を提供します。
- javascriptおよびcss -これらのファイルはアセットと見なされます。
- index.php -このファイルは、Webアプリケーションの初期化に必要です。
リソース
Resourcesディレクトリには、Webアプリケーションを強化するファイルが含まれています。 このディレクトリに含まれるサブフォルダとその目的は以下で説明されています-
- assets -アセットフォルダーには、Webアプリケーションのスタイル設定に必要なLESSやSCSSなどのファイルが含まれます。
- lang -このフォルダーには、ローカライズまたは内部化の構成が含まれています。
- * views-ビューは、エンドユーザーと対話し、MVCアーキテクチャで主要な役割を果たすHTMLファイルまたはテンプレートです。
アセットフォルダーを持たずに、resourcesディレクトリがフラット化されることを確認します。 同じの絵の表現は以下に示されています-
ストレージ
これは、Laravelプロジェクトの実行中に頻繁に必要とされるすべてのログと必要なファイルを保存するフォルダーです。 このディレクトリに含まれるサブフォルダとその目的は以下のとおりです-
- app -このフォルダには、連続して呼び出されるファイルが含まれます。
- フレームワーク-頻繁に呼び出されるセッション、キャッシュ、ビューが含まれます。
- ログ-すべての例外とエラーログはこのサブフォルダーで追跡されます。
テスト
すべてのユニットテストケースがこのディレクトリに含まれています。 テストケースクラスの命名規則は camel_case であり、クラスの機能に応じた規則に従います。
ベンダー
Laravelは、Composerの依存関係に完全に基づいています。たとえば、Laravelのセットアップをインストールしたり、サードパーティのライブラリを含めるなどです。 ベンダーフォルダーには、コンポーザーの依存関係がすべて含まれています。
上記のファイルに加えて、LaravelにはGitHub構成、パッケージ、サードパーティライブラリなどのさまざまな機能で主要な役割を果たす他のファイルも含まれています。
アプリケーション構造に含まれるファイルは以下に示されています-