こんにちは。
Laravel(ララベル)を使ってみたいなーと思うLaravel(ララベル)初学者の方がまず陥るのが
どこに何があるか分からないということです。Laravel(ララベル)のディレクトリ構造が分からないということです。
実際にLaravel(ララベル)のようなフレームワークはとても便利な反面、すでに出来上がっていますので、
どこに何があるの?ということが分からない→挫折
何をやればいいのか分からない→挫折
のような状況になってしまいます。
今回は最初に理解して欲しいLaravel(ララベル)のディレクトリ構造についてまとめていきます。
「Laravel(ララベル)のディレクトリ構造が分からない。」
「中身のディレクトリごとに何をやっているの?]
という疑問にフリーランス歴5年、ウェブ系フリーランスエンジニア歴3年の僕が答えていきます。
Laravel(ララベル) のプロジェクトディレクトリの構造
Laravel(ララベル)をでまずプロジェクトを作るコマンドを打ってみます。
1 |
composer create-project --prefer-dist laravel/laravel Laravel-your_project "5.6.33 |
(Laravel-your_projectには自分で作りたいプロジェクトのプロジェクト名を入れてみてください。)
Laravel(ララベル)がインストールされます。
Laravel(ララベル)の動作確認をしましょう。
1 2 |
php artisan serve Laravel development server started: ;http://your-laravel_ip:8000<span style="color: #333333;">r started: ;http://your-laravel_ip:8000</span> |
your-laravel_ipにはご自身が作った環境のipアドレスを入れてください。
僕の場合はvagrantで192.168.33.10
で作ったので、
で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(ララベル)を使っていく上でIPやDBなどを設定していく場所です。
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モデルの一つであるControllerはView(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
ディレクトリは外部に公開されるJSやCSSなどがまとめてあります。
.htaccess
やrobots.txt
もここに入っていますので、地味に使います。
「外部に公開されるCSSやJSはここに置いてあるんだー」と覚えておいてください。
resources
ディレクトリ
こちらもCSSやJSを書いていく場所です。
/resources/assets
に入ってあるJSやCSSはpublic
の中のCSSやJSに自動で入ってくれます。
CSSやJS を書いていく際はこちらに書いていきましょう。
「WEBサイトのCSSとJSどこに書くんよ!あほ!」ってなったら
こちらに書いていくことを思い出してください。
書くのは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ディレクトリはコントローラ、ミドルウェア、フォームリクエストを設置します。アプリケーションへのリクエストを処理するロジックは、ほぼ全てこのディレクトリ内に設置します。
controller
はめちゃめちゃ使うので、覚えておいてください。
Providers
ディレクトリ(app
ディレクトリ)
Providersディレクトリは、アプリケーションの全サービスプロバイダにより構成します。サービスプロバイダは、サービスをコンテナと結合、イベントの登録、もしくはアプリケーションへやってくるリクエストを処理するために必要な用意をするタスクを実行するなど、アプリケーションの事前準備を行います。
インストール直後のアプリケーションでも、このディレクトリは多くのプロパイダーを含んでいます。必要に応じて、自分のプロバイダを自由に追加してください。
こちらはあんま使ったことないです。
まとめ Laravel(ララベル)のディレクトリ構造
Laravel(ララベル)のディレクトリ構造についてまとめていきました。
がっつりシステムを作っていく際には全ての機能を把握しておかなければなりませんが、どんな道でも少しずつ歩いていかなければ、いきたい場所には行けません。
本記事で結構使うと書いた部分を確認して、自分で簡単なシステムを作ってみてください。
Laravel(ララベル)の勉強でおすすめなのはこちらの記事です。
ちょっとずつ勉強していけば、できるようになりますのいで、自信をなくさず少しずつやっていきましょう。