Laravelのディレクトリ構造について確認してみました。
ディレクトリに何のファイルを格納するか理解しておかないと、開発するときにコマンドで作成したファイルがどこに入るか、どこにファイルを置くべきか迷ってしまいます。
Laravelのバージョンは6で確認しています。
ディレクトリ構造について
Laravelでプロジェクト作成時の初期ディレクトリ構造は下記のようになってます。
下記はtreeコマンドで2階層目までを表示してみました。
├── app
│ ├── Console
│ ├── Exceptions
│ ├── Http
│ └── Providers
├── bootstrap
│ └── cache
├── config
├── database
│ ├── factories
│ ├── migrations
│ └── seeds
├── public
├── resources
│ ├── js
│ ├── lang
│ ├── sass
│ └── views
├── routes
├── storage
│ ├── app
│ ├── framework
│ └── logs
├── tests
│ ├── Feature
│ └── Unit
├── vendor
appディレクトリ
バックエンドの基本的なコードはapp配下に配置されます。
よく使うのは、app/Http/Controllers
とapp/Console
の配下です。
app/Console
の配下にはバッチ(コマンド)処理のためのファイルが配置されます。
app/Http/Controllers
配下にはバックエンドで処理するための、コントローラーのファイルが配置されます。
bootstrapディレクトリ
フレームワークの初期処理を行ってくれます。
開発時には、ほとんど触ることのないディレクトリーです。
configディレクトリ
アプリケーションでの設定ファイルが配置されています。
ファイルの内容はPHPの連想配列で構成されています。
最初からapp.php
やauth.php
といった設定ファイルが配置されていますが、自分で作成することもできます。
アプリ内で使う固有の設定値などは新しくPHPファイルを作って、同じように連想配列で書いておくと良いです。
databaseディレクトリ
データベースのマイグレーションファイルやシードファイルがここに配置されます。
php artisan make:migration
コマンドでマイグレーションファイルを生成すると、database/migrations
配下に配置されます。
php artisan migrate
コマンドで、database/migrations
配下のファイルを元にデータベースにマイグレーションしてくれます。
database/seeds
配下に作ったテーブルのマスタデータなど、初期データを入れておきたい場合はシードファイルを作成して使うようにします。
publicディレクトリ
アプリケーションの全リクエストの入り口になります。(index.php
にアクセスされる)
フロントの画面を作成するための画像やjavascript、cssなど静的ファイルを配置します。
resourcesディレクトリ
resources/lang
ディレクトリ配下にバリデーションで表示されるエラーメッセージなど、言語ごとのメッセージファイルが配置されます。
resources/views
ディレクトリ配下にフロント画面のview
ファイルが配置されます。
routesディレクトリ
Laravelにリクエストされて、リクエストを処理するときに、どのコントローラーで処理するかなど
ルーティングが定義されています。
routes/web.php
がフォーム画面から、POSTやGETリクエストが送信されたときのルートを書いておくファイルです。
routes/api.php
はSPA構成でアプリケーションを作った場合など、ajax通信で送信されたときのルートを書くファイルです。
storageディレクトリ
storage/framework
にはフレームワークで作成するファイルやキャッシュファイルが配置されます。
storage/app/public
にはLaravelで保存した画像ファイルなどが配置されます。
storage/logs
にはLaravelのログが出力されます。
何かエラーが出た場合は、ここのログを追うようにすると良いです。
testsディレクトリ
Laravelでユニットテストをするときには、ここにファイルを作成します。
vendorディレクトリ
composer
でインストールするライブラリが配置されます。
.env
.env
ファイルはLaravelのデータベースに接続するための情報や、環境ごとに変わる設定を記載するファイルです。
MacやLinuxだと「.」ファイルは隠しファイルになっているので、そのままでは確認できません。
VSCodeなどのエディタや、ls -la
コマンドを打ったりすると確認することができます。
終わりに
Laravelのディレクトリについて、確認しました。
Laravelの使いはじめは、慣れないと思います。使っていると、どこに何が配置してあったかわかるようになってきます。
開発時によく使うのは
・コントローラーに処理を書いていくので、app/Http/Controllersディレクトリ配下
・フロントの画面を作成するときに、resources/viewsディレクトリ配下
・マイグレーションファイルにテーブルのカラムを追加したりするため、database/migrationsディレクトリ配下
あたりになるかと思います。
コメント