Laravelディレクトリ構造を全てまとめてみました!(Laravel初学者必見!)

こんにちは。

Laravel(ララベル)を使ってみたいなーと思うLaravel(ララベル)初学者の方がまず陥るのが

どこに何があるか分からないということです。Laravel(ララベル)のディレクトリ構造が分からないということです。

実際にLaravel(ララベル)のようなフレームワークはとても便利な反面、すでに出来上がっていますので、

どこに何があるの?ということが分からない挫折

何をやればいいのか分からない挫折

のような状況になってしまいます。

今回は最初に理解して欲しいLaravel(ララベル)のディレクトリ構造についてまとめていきます。

Laravel(ララベル)のディレクトリ構造が分からない。」

「中身のディレクトリごとに何をやっているの?]

という疑問にフリーランス歴5年、ウェブ系フリーランスエンジニア歴3年の僕が答えていきます。

Laravel(ララベル) のプロジェクトディレクトリの構造

Laravel(ララベル)をでまずプロジェクトを作るコマンドを打ってみます。

今回は5.6系のLaravel(ララベル)でプロジェクトを作ります。

(Laravel-your_projectには自分で作りたいプロジェクトのプロジェクト名を入れてみてください。)

Laravel(ララベル)がインストールされます。

Laravel(ララベル)の動作確認をしましょう。

 

your-laravel_ipにはご自身が作った環境のipアドレスを入れてください。

僕の場合はvagrant192.168.33.10 で作ったので、

http://192.168.33.10:8000

Laravel(ララベル)の表示が確認できます。

Laravel(ララベル)でインストールされたディレクトリ群

Laravel(ララベル)でプロジェクトを作ると以下のディレクトリがインストールされます。

全てのディレクトリがインストールされました。例外のディレクトリもありますが、そちらは他の機会に。

(ぼくFilezillaに色つける派なんですよねえ)

appディレクトリ

bootstrapディレクトリ

configディレクトリ

databaseディレクトリ

publicディレクトリ

resourcesディレクトリ

routesディレクトリ

storageディレクトリ

testsディレクトリ

vendorディレクトリ

Consoleディレクトリ(appディレクトリ)

Exceptionsディレクトリ(appディレクトリ)

Httpディレクトリ (appディレクトリ)

Providersディレクトリ(appディレクトリ)

Laravel(ララベル)のプロジェクトディレクトリ(直下ファイル)

それではLaravel(ララベル)のプロジェクトディレクトリの構造についてまとめていきます。

この中の何が何をやっているんだといいうことを確認してください。

まずは直下ファイルについて確認しておきましょう。

.env

.envは環境設定用のファイルです。

Laravel(ララベル)を使っていく上でIPDBなどを設定していく場所です。

wordpressで行ったらwp-config.phpにあたらる部分で、環境変数に関する記述をする部分です。

.gitattributes,.gitignore

git利用に関することを書いていく部分です。

artisan

artisanコマンドについて書いてある部分です。

composer.json

composerについて書いてある部分です。

package.json

npmを利用する際のプログラムがまとめてある場所です。

phpunit.xml

PHPUnitという ユニットテストについて書いてある部分です。

server.php

ビルトインサーバー起動に関することが書いてある部分です。

php artisan serve

webpack.mix.js

JavaScriptパッケージ管理ツールであるwebpackについてまとめてある部分です。

yarn.lock

yarnというフロントエンドパッケージマネージャーにより自動生成されるファイルです。

Laravel(ララベル)のプロジェクトディレクトリ

appディレクトリ

Laravel(ララベル)のアプリケーションを作る上でここが一番重要です。

Laravel(ララベル)のアプリケーションのプログラムをここで書いていきます。

中にある/Http/Controllerは特に触っていきます。

MVCモデルの一つであるControllerView(Webページで見られる部分)を呼び出す処理を書きますので、「Controllerどこにあんの?」ってなったr

appディレクトリだよ」と思い出してください。

bootstrapディレクトリ

Laravel(ララベル)bootstrapディレクトリはLaravel(ララベル)フレームワークの最初の起動をするファイルを持っています。最初の起動時のパフォーマンスを上げるために

フレームワークのキャッシュファイルなどを保存していきます。

(ぶっちゃけあんまり触りません。)

configディレクトリ

Laravel(ララベル)configディレクトリはアプリケーションの全設定ファイルがまとめてあります。

中にあるdatabase.phpではデータベースを使用する際の設定を書いていきます。

auth.phpではauth認証についてまとめたり、timezone(時間設定)などはapp.phpに書いていきます。

databaseディレクトリ

データベース関連がまとめてあります。

Laravel(ララベル)ではマイグレーションといって、データベースに入れる内容を事前に決めることができ、migrationファイルとして保存しておきます。

そのmigrationファイルも/database/migrationsディレクトリの中にまとめてありますので、こちらに「migrationファイルが入るんだー」と覚えておきましょう。

databaseディレクトリはLaravel(ララベル)を扱う際に結構使います。)

publicディレクトリ

Laravel(ララベル)publicディレクトリは外部に公開されるJSCSSなどがまとめてあります。

.htaccessrobots.txtもここに入っていますので、地味に使います。

「外部に公開されるCSSJSはここに置いてあるんだー」と覚えておいてください。

resourcesディレクトリ

こちらもCSSJSを書いていく場所です。

/resources/assetsに入ってあるJSCSSpublicの中のCSSJSに自動で入ってくれます。

CSSJS を書いていく際はこちらに書いていきましょう。

WEBサイトのCSSJSどこに書くんよ!あほ!」ってなったら

こちらに書いていくことを思い出してください。

書くのはresources、配置されるのはpublicと覚えてください。というか一瞬publicについて忘れてください。

view

Laravel(ララベル)でウェブサービスを作っていくのでとても重要なMVCモデルの一つViewが入っている部分です。

この中にウェブサイトで表示される部分を書いていくことになります。

view内にウェブサイトを書いて、Controllerで呼び出す。

viewディレクトリ触ったらControllerディレクトリも触るので、必ず覚えておいてください。

routesディレクトリ

Laravel(ララベル)を構成する上で重要なルーティング関連がまとめてあります。

初学者が勉強する上で一番触るのはweb.phpです。

URLを作流のがweb.phpです。

web.phpで「/」ならルートパスになり、「login」ならlogin画面のURLを作っていきます。

web.phpはかなり触りますので、routeディレクトリの中にあることを覚えてください。

storageディレクトリ

srorageディレクトリは名前の通り、ファイルの保存場所です。

アプリケーションのログファイルやコンパイルされたbladeテンプレートなどが保存されます。ログを確認したりする際に使います。

(重要だけど、あんま使わないっす。)

testsディレクトリ

テストディレクトリは自動テストであるphp Unitテストをする際のファイルなどが含まれています。

テストに関しては、しっかり学ばれた方がいいので、今度まとめます。

vendorディレクトリ

Laravel(ララベル) のライブラリを含んでいるディレクトリです。composerのパッケージなどが含んであリます。

Consoleディレクトリ(appディレクトリ)

consoleディレクトリはアプリケーションのartisanコマンドがまとめられています。

make:command

でコマンドが作成できるのですが、そちらがまとめてあります。

Exceptionsディレクトリ(appディレクトリ)

例外処理に関する記述を書くところです。

Httpディレクトリ (appディレクトリ)

Httpディレクトリはコントローラ、ミドルウェア、フォームリクエストを設置します。アプリケーションへのリクエストを処理するロジックは、ほぼ全てこのディレクトリ内に設置します。

引用:https://readouble.com/laravel/5.8/ja/structure.html

controllerはめちゃめちゃ使うので、覚えておいてください。

Providersディレクトリ(appディレクトリ)

Providersディレクトリは、アプリケーションの全サービスプロバイダにより構成します。サービスプロバイダは、サービスをコンテナと結合、イベントの登録、もしくはアプリケーションへやってくるリクエストを処理するために必要な用意をするタスクを実行するなど、アプリケーションの事前準備を行います。

インストール直後のアプリケーションでも、このディレクトリは多くのプロパイダーを含んでいます。必要に応じて、自分のプロバイダを自由に追加してください。

出展:https://readouble.com/laravel/5.8/ja/structure.html

こちらはあんま使ったことないです。

まとめ Laravel(ララベル)のディレクトリ構造

Laravel(ララベル)のディレクトリ構造についてまとめていきました。

がっつりシステムを作っていく際には全ての機能を把握しておかなければなりませんが、どんな道でも少しずつ歩いていかなければ、いきたい場所には行けません。

本記事で結構使うと書いた部分を確認して、自分で簡単なシステムを作ってみてください。

Laravel(ララベル)の勉強でおすすめなのはこちらの記事です。

21世紀日記

最近、仕事でとある情報を保存して出力するみたいな仕事があったので、 おーこれはこれは、まあまあまあ、あはは、やばいな、セ…

ちょっとずつ勉強していけば、できるようになりますのいで、自信をなくさず少しずつやっていきましょう。