appディレクトリ
appディレクトリは、アプリケーションのコアコードを配置します。このフォルダの詳細は、この後に説明します。
https://readouble.com/laravel/9.x/ja/structure.html
となっています。
重要なので別記事で書いておくことにします。
アプリケーションの主要な部分は、appディレクトリ内に配置します。このディレクトリはデフォルトで、App名前空間のもとに置かれており、PSR-4オートローディング規約を使い、Composerがオートロードしています。サブディレクトリは以下の5つです。
- Console
- Exceptions
- Http
- Models
- Providers
重要なのはHttpでしょうね。
Http
ディレクトリはコントローラやフィルター、リクエストにより構成されています。
クラス生成のためのmake
Artisanコマンドを使用することで、さまざまなディレクトリがapp
ディレクトリ内に作成されます。たとえば、app/Jobs
ディレクトリは、ジョブクラスを生成するmake:job
Artisanコマンドを実行するまで存在していません。
ああ、あくまで初期状態では全てのディレクトリが存在するわけではなく、必要に応じてArtisanコマンドで生成するんですね。
使用可能なコマンドを確認するには、php artisan list makeを実行すれば良いそうです。以下を参照して下さい。
Available commands for the "make" namespace: make:cast Create a new custom Eloquent cast class make:channel Create a new channel class make:command Create a new Artisan command make:component Create a new view component class make:controller Create a new controller class make:event Create a new event class make:exception Create a new custom exception class make:factory Create a new model factory make:job Create a new job class make:listener Create a new event listener class make:mail Create a new email class make:middleware Create a new middleware class make:migration Create a new migration file make:model Create a new Eloquent model class make:notification Create a new notification class make:observer Create a new observer class make:policy Create a new policy class make:provider Create a new service provider class make:request Create a new form request class make:resource Create a new resource make:rule Create a new validation rule make:scope Create a new scope class make:seeder Create a new seeder class make:test Create a new test class
最初から存在するディレクトリ
Consoleディレクトリ
アプリケーションの全カスタムArtisanコマンドで構成します。これらのコマンドクラスはmake:command
コマンドにより生成されます。コンソールカーネルもこのディレクトリ内にあり、カスタムArtisanコマンドや、タスクのスケジュールを登録します。
Exceptionsディレクトリ
アプリケーションの例外ハンドラで構成します。また、アプリケーションから投げる例外を用意するにも適した場所でしょう。例外のログやレンダ方法をカスタマイズしたい場合は、このディレクトリのHandler
クラスを修正してください。
Httpディレクトリ
コントローラ、ミドルウェア、フォームリクエストを設置します。アプリケーションへのリクエストを処理するロジックは、ほぼすべてこのディレクトリ内に設置します。
Modelsディレクトリ
すべてのEloquentモデルクラスを設置します。Laravelが提供するEloquent ORMは、データベースを操作するための美しくシンプルなActiveRecordの実装を提供しています。各データベーステーブルには、そのテーブル操作に使う対応する「モデル」があります。モデルを使用し、テーブル内のデータをクエリしたり、テーブルに新しいレコードを挿入したりできます。
Providersディレクトリ
アプリケーションの全サービスプロバイダにより構成します。サービスプロバイダは、サービスをコンテナと結合、イベントの登録、もしくはアプリケーションへやってくるリクエストを処理するために必要な用意をするタスクを実行するなど、アプリケーションの事前準備を行います。
インストール直後のアプリケーションでも、このディレクトリは多くのプロパイダーを含んでいます。必要に応じて、自分のプロバイダを自由に追加してください。
Artisanコマンドで生成するディレクトリ
アプリケーションの全ブロードキャストチャンネルクラスで構成します。これらのクラスは、make:channel
コマンドで生成されます。このディレクトリはデフォルトでは存在しませんが、最初にチャンネルを生成したときに作成されます。チャンネルについての詳細は、イベントブロードキャストのドキュメントで確認してください。
event:generate
かmake:event
Artisanコマンド実行時に作成されます。Events
ディレクトリは、イベントクラスを設置する場所です。イベントは特定のアクションが起きたことをアプリケーションの別の部分へ知らせるために使われ、柔軟性と分離性を提供しています。make:job
Artisanコマンドを実行すると作成されます。Jobs
ディレクトリはアプリケーションのキュー投入可能なジョブを置いておく場所です。Jobs
はアプリケーションによりキューに投入されるか、もしくは現在のリクエストサイクル中に同期的に実行されます。現在のリクエストサイクル中に同期的に実行するジョブは、コマンドパターンを実装しているため、時に「コマンド」と呼ばれることがあります。 event:generate
かmake:listener
Artisanコマンドを実行すると、作成されます。Listeners
ディレクトリには、eventsイベントを処理するクラスを設置します。イベントリスナはイベントインスタンスを受け取り、発行されたイベントへ対応するロジックを実行します。たとえば、UserRegistered
(ユーザー登録)イベントは、SendWelcomeEmail
(ウェルカムメール送信)リスナにより処理されることになるでしょう。 make:mail
Artisanコマンドを実行すると作成されます。Mail
ディレクトリには、アプリケーションから送信されるすべてのメールを表すクラスを設置します。メールオブジェクトを使用すると、メールを作成するすべてのロジックを、Mail::send
メソッドを使用して送信できる単一の単純なクラスにカプセル化できます。 make:notification
Artisanコマンドを実行すると作成されます。Notifications
ディレクトリには、アプリケーション内で発生するイベントに関する簡単な通知など、アプリケーションが送信するすべての「トランザクション」的な通知を設置します。Laravelの通知機能は、電子メール、Slack、SMSなどのさまざまなドライバを介して通知を送信したり、データベースに保存したりすることを抽象化しています。make:policy
Artisanコマンドを実行すると作成されます。Policies
ディレクトリには、アプリケーションの認可ポリシークラスを設置します。ポリシーは、ユーザーがリソースに対して特定のアクションを実行できるかどうかを判断するために使用されます。make:rule
Artisanコマンドを実行すると、作成されます。Rules
ディレクトリは、アプリケーションが使用するバリデーションルールオブジェクトで構成します。ルールは複雑なバリデーションロジックをシンプルなオブジェクトへカプセル化するために使用します。詳細は、バリデーションのドキュメントで確認してください。
ずいぶんとたくさんのディレクトリがありますね。
とりあえずMVCに関連するところから始めて、徐々に理解していくことにします。
0 件のコメント:
コメントを投稿