Laravelのディレクトリ構造について

Laravel Laravel

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/Controllersapp/Consoleの配下です。

app/Consoleの配下にはバッチ(コマンド)処理のためのファイルが配置されます。
app/Http/Controllers配下にはバックエンドで処理するための、コントローラーのファイルが配置されます。

bootstrapディレクトリ

フレームワークの初期処理を行ってくれます。
開発時には、ほとんど触ることのないディレクトリーです。

configディレクトリ

アプリケーションでの設定ファイルが配置されています。
ファイルの内容はPHPの連想配列で構成されています。

最初からapp.phpauth.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の使いはじめは、慣れないと思います。使っていると、どこに何が配置してあったかわかるようになってきます。

開発時によく使うのは

・ルーティングのためにroutesディレクトリ配下
・コントローラーに処理を書いていくので、app/Http/Controllersディレクトリ配下
・フロントの画面を作成するときに、resources/viewsディレクトリ配下
・マイグレーションファイルにテーブルのカラムを追加したりするため、database/migrationsディレクトリ配下

あたりになるかと思います。

コメント

タイトルとURLをコピーしました