- 【プロジェクト直下】
- 【appディレクトリ】
- 【bootstrapディレクトリ】
- 【configディレクトリ】
- 【databaseディレクトリ】
- 【publicディレクトリ】
- 【resourcesディレクトリ】
- 【routesディレクトリ】
- 【storageディレクトリ】
- 【testディレクトリ】
- 【vendorディレクトリ】
- 【まとめ】
今回はアプリケーション構成について解説します。
【プロジェクト直下】
プロジェクトを新規作成したらまずは.env.exampleをコピーして.envファイルを作成し、各種設定を行いましょう。
そのほかのファイルについては必要に応じて手を加えていきます。
.env
動作環境に関する環境設定ファイルです。
アプリケーション名やDB、メールなどの動作環境、環境変数に関する記述を行います。
APP_ENVを環境ごとに分けておくと便利です。
.gitattributes
.gitignore
git利用に関する記述を行います。
git利用時に特定のファイルをバージョン管理したくない時などに.gitignoreに記述したりで使用します。
artisan
artisanコマンドに関する記述をするファイルです。
composer.json
composer.lock
composer利用に関するファイルです。
composer.jsonはcomposer update時、composer.lockはcomposer install時に読み込まれます。
package.json
Node.jsで書かれたJavaScriptのパッケージ管理ツール(npm)で利用するファイルです。
phpunit.xml
PHPUnit(ユニットテストプログラム)に関するファイルです。
server.php
ビルトインサーバー起動時に使用されるプログラムです。
【appディレクトリ】
Laravelアプリケーションで用意されているディレクトリの中で、最も重要かつ利用頻度が高いディレクトリです。
アプリケーションの主軸となるプログラムを格納していきます。
Console
artisanコマンド(Laravelに含まれるコマンドラインインターフェイス)を自分で作成した場合、ここに格納します。
Exceptions
例外処理を格納する場所です。
Http
コントローラやミドルウェアなど、アプリケーションへのリクエスト処理に関するロジックのほとんどを格納するLaravelの心臓部です。
恐らく最も頻繁に使う場所となります。
Providers
プロバイダと呼ばれるプログラム格納する場所です。
Laravelが起動する時の初期処理を記述したクラスで、全てのビューで共有できる変数の定義などを行えます。
User.php
ユーザ認証に関するスクリプトファイルです。
ユーザ登録機能をカスタマイズしたい時などに手を加えます。
【bootstrapディレクトリ】
アプリケーションの実行時に最初に行われる処理がまとめられているディレクトリです。
最初のうちは特に意識する必要はないです。
【configディレクトリ】
各種設定関連のファイルがまとめられているディレクトリです。
.envに記載した内容はここのconfigファイル経由で使用します。
公式でも各ファイル一読を推奨していますので、目を通しておくといいです。
app.php
アプリの主要設定。特にタイムゾーンの設定は重要です。
auth.php
認証に関する設定
broadcasting.php
イベントブロードキャストの設定
cache.php
キャッシュに関する設定
database.php
データベースの使用に関する設定
filesystems.php
ファイルストレージなどの設定
hashing.php
パスワードのハッシュに関する設定
logging.php
ロギングに関する設定
mail.php
メールサーバに関する設定
queue.php
ジョブキューに関する設定
services.php
メール関連機能のAPIベースドライバに関する設定
session.php
セッションの設定
view.php
ビューテンプレートの設定
【databaseディレクトリ】
データベース関連のファイルをまとめているディレクトリです。
マイグレーションファイル(データベースのバージョン管理のようなもの)やシードファイル(初期値設定)などを格納しています
【publicディレクトリ】
外部公開ディレクトリです。
JavaScriptやcssなど外部にそのまま公開されるファイルを格納します。
アプリケーションに送られるリクエストのエントリーポイントであるindex.phpもここに格納されています。
【resourcesディレクトリ】
リソース関係ファイルの格納ディレクトリです。
プログラムが利用するリソースファイルが格納されています。
言語ファイルやviewもここに格納します。
【routesディレクトリ】
ルート情報の格納ディレクトリです。
アクセスするアドレスに割り当てられたプログラム情報などを格納します。
主にweb.phpを編集することになります。
【storageディレクトリ】
Bladeテンプレートをコンパイルしたファイル、セッション関係のファイル、キャッシュファイルなどが格納されるディレクトリです。
またアプリケーションのログもここに格納されるのでパーミッション設定は注意が必要です。
【testディレクトリ】
PHPUnitのようなユニットテストに関係するファイルを格納するディレクトリです。
【vendorディレクトリ】
Laravelフレームワークが提供するライブラリを構成するファイル群が格納されたディレクトリです。
中には膨大なファイルが格納されています。
Facadesについて調べる際に、laravel/framework/src/illuminate以下を覗くことが多いです
【まとめ】
アプリ開発を進めていくにあたりこの先最も利用頻度が高いのは、「app」、「routes」、「resources」
「database」ディレクトリになるかと思います。
その他のディレクトリは必要が生じた際にファイル作成、編集を行うケースが大半です。
まずはよく使うディレクトリの役割から覚えていきましょう。
次回はからいよいよアプリ開発に着手していきます。