イントロダクション
Laravelのデフォルトアプリケーション構造はアプリケーションの大小にかかわらず、素晴らしいスタートを切ってもらえることを意図しています。もちろんアプリケーションは皆さんのお好みに応じ、自由に体系立ててください。クラスがComposerによりオートローディングできるならば、Laravelはクラスをどこに配置するか強制することはまずありません。
ルートディレクトリ
新しくインストールしたLaravelのルートディレクトリーには、様々なフォルダーが用意されています。
app
ディレクトリーは皆さんが想像している通り、皆さんのアプリケーションのコアコードを配置します。このフォルダーの詳細は、このあと説明します。
bootstrap
フォルダーはフレームワークの初期起動やオートローディングの設定を行うファイルを含んでいます。その中のcache
フォルダーは初期処理のパフォーマンスを最適化するため、フレームワークが生成するいくつかのファイルが保存されるフォルダーです。
config
ディレクトリには名前が示す通り、アプリケーションの全設定ファイルが設置されています。
database
フォルダーはデータベースのマイグレーションと初期値設定(シーディング)を配置します。ご希望であれば、このファイルをSQLiteデータベースの設置場所としても利用できます。
public
ディレクトリはフロントコントローラーとアセット(画像、JavaScript、CSSなど)を配置します。
resources
ディレクトリはビューやアセットの元ファイル(LESS、SASS、CoffeeScript)、「言語」ファイルを配置します。
storage
ディレクトリーにはコンパイルされたBladeテンプレート、ファイルベースのセッション、ファイルキャッシュなど、フレームワークにより生成されるファイルが保存されます。このフォルダーはapp
、framework
、logs
ディレクトリーに分かれています。app
ディレクトリーはアプリケーションにより使用されるファイルを保存するために利用します。framework
ディレクトリーはフレームワークが生成するファイルやキャッシュに利用されます。最後のlogs
ディレクトリーはアプリケーションのログファイルが保存されます。
tests
ディレクトリには皆さんの自動テストを配置します。サンプルのPHPUnitテストが最初に含まれています。
vendor
ディレクトリには、Composerによる依存パッケージが配置されます。
Appディレクトリ
皆さんのアプリケーションの「肉」の部分は、app
ディレクトリー内に配置します。このディレクトリーはデフォルトで、App
名前空間のもとに置かれており、PSR-4オートローディング規約を使い、Composerがオートロードしています。
app
ディレクトリは多様なサブディレクトリを持っています。Console
、Http
、Providers
などです。Console
とHttp
ディレクトリは、アプリケーションの「コア」へAPIを提供していると考えてください。HTTPプロトコルとCLIは両方共にアプリケーションと相互に関係するメカニズムですが、実際のアプリケーションロジックではありません。言い換えれば、これらはアプリケーションに指示を出す、2つの方法に過ぎません。Console
ディレクトリは全Artisanコマンドで構成され、一方のHttp
ディレクトリはコントローラーやフィルター、リクエストにより構成されています。
Events
ディレクトリは名前の通り、イベントクラスを設置する場所です。イベントは特定のアクションが起きたことをアプリケーションの別の部分に知らせるために使われ、柔軟性と分離性を提供しています。
Exceptions
ディレクトリはアプリケーションの例外ハンドラと、さらに自分のアプリケーションから投げる例外を置いておくには最適でしょう。
Jobs
ディレクトリーはアプリケーションのキュー投入可能なジョブを置いておく場所です。Jobs
はアプリケーションによりキューに投入されるジョブを表すと同時に、現在のリクエストのライフサイクル中で定期的に実行するタスクを表します。
Listeners
ディレクトリへはイベントのハンドラクラスを設置します。ハンドラはイベントを受け取り、発行されたイベントに対応するロジックを実行します。たとえばUserRegistered
イベントはSendWelcomeEmail
リスナにより処理されるでしょう。
Policies
ディレクトリにはアプリケーションの認可ポリシークラスを設置します。ポリシーは、リソースに対し指定したアクションをユーザが実行できるかを決定します。詳細は、認可のドキュメントをご覧ください。
注目:
app
ディレクトリ中の多くのクラスが、Aritsan コマンドにより生成できます。使用できるコマンドを確認するには、端末でphp artisan list make
コマンドを実行してください。