Laravelのディレクトリ構造
更新日 : 2020年02月03日
Laravelのインストールで、トップページまでの表示が完了しました。続いてLaravelがユーザーからのHTTPリクエストを受け取り、レスポンスを返却するまでの構成を見ていきましょう。
Laravelのディレクトリ構成
Laravelをインストールすると複数のディレクトリができます。それらのディレクトリについて順番に解説します。
app
作成するアプリケーションの本体となるコードをここに書いていきます。Laravelで一般的なWEBアプリケーションを作るのであれば、まずはapp/Http/Controllers
ディレクトリ内にコントローラーを作成することがスタートです。
その他のディレクトリに関しては、様々な役割ごとに分かれているため、実際に利用する際に別記事で解説します。
bootstrap
このディレクトリ内のapp.php
ファイルで、Laravelのフレームワークの初期化処理が行われます。WEBアプリケーション開発時に特に意識する必要はありません。
config
設定ファイル関連が配置されます。このディレクトリ内にあるPHPファイルを見ることでどんな設定値がアプリケーション内で利用できるかがわかります。
これらの設定値はLaravelフレームワーク内でグローバルに利用できるconfig
関数を呼び出すことで設定値にアクセスできます。基本的な設定値の変更は.env
ファイルというものを利用するため、このフォルダは書き換えたりすることはあまりありません。
database
データベース関連の初期値やマイグレーション(データベースの自動生成機能など)を行う部分です。データベースを利用するまでは特に利用しません。
public
その名の通り、WEBサーバーとして公開されるべきディレクトリです。このディレクトリのみをWEBサーバーのドキュメントルートに設定しておけば、publicディレクトリ内にあるindex.php
がLaravelの入り口として機能してくれます。
publicディレクトリ以外はWEBサーバーで公開しないことにより、セキュリティ的にも他のPHPファイルや設定ファイルは安全です。
その他CSSファイルやJavascriptファイルなどユーザーに公開されるべきファイルはここに配置されます。
resources
Viewや言語ファイルなどのリソースファイル(プログラム本体の動作に必要なファイル類)が格納されます。
routes
ここには4つのPHPファイルが格納されています。一般的なWEBアプリケーションであれば、URLルーティングを行うweb.php
と、API専用のURLルーティングを行うapi.php
をよく編集することになります。これらのファイルによってURLの構成が決定します。
storage
Viewのコンパイル済みファイルやファイルベースのセッション、ログなどLaravelから生成されるファイルがストレージディレクトリに格納されます。
また、storage/app/public
ディレクトリはユーザーからのアップロードされたファイルなどを格納するディレクトリとしても利用されます。storage
ディレクトリは直接公開されないため、public/storage
ディレクトリがstorage/app/public
ディレクトリを指すようにシンボリックリンク(Windowsで言うショートカット)でアクセスさせます。
tests
テスト用のPHPファイルを格納します。PHPUnitというライブラリがインストールされているため、コマンドで自動実行が動作します。
vender
Composerにより、各種依存ライブラリがインストールされます。Laravelフレームワーク本体もvenderディレクトリ内にインストールされています。このディレクトリ内に存在するファイルは、絶対に自分で編集してはいけません。
その他のファイル
.env
.env
ファイルは環境設定ファイルです。データベースへの接続設定、アプリケーション名など環境ごとに異なる設定値をこのファイルに書き込みます。.env
ファイルに書かれた設定がconfig
ディレクトリ内のPHPファイルで読み込まれます。
composer.json・composer.lock
Composerで利用されるファイルです。これらのファイルが存在すれば、composer install
またはcomposer update
コマンドで各種依存パッケージのインストール、アップデートを自動で行ってくれます。
これらのファイルに従ってvendor
ディレクトリのファイルの内容が変更されます。
MVCはそれぞれどこに当てはまるか
それぞれのディレクトリに関して簡単に説明しましたが、フレームワークの基本となるMVCがディレクトリのどこに当てはまるのかを確認しておきます。
- Model
Laravelにはモデル用のディレクトリは存在しません。modelは主にデータ処理を扱う部分ですが、人によって定義が曖昧なため、「modelは各自で作ってくれ」というスタンスです。 - View
ビューは表示を担当する部分でした。Controllerからデータを受け取り、そのデータを表示するHTMLなどが深く関わる部分です。これはresources/views
ディレクトリで扱うことになります。Laravelで利用されるView用のPHPファイルは〜〜.blade.phpというファイルで作成します。 - Controller
モデルやビューへの橋渡しを行うコントローラーはapp/Http/Controllers
ディレクトリで作成します。コントローラーのどの処理を実行するかどうかは、ルーター(routes
ディレクトリ配下のPHPファイル)が決定します。
タグ
-
前の記事
Laravelのインストール
-
次の記事
Laravelのライフサイクル