ブログ名

PHP LaravelでWEBアプリ開発 【アプリケーション構成】

今回はアプリケーション構成について解説します。

f:id:iTD_GRP:20190609094638j:plain

【プロジェクト直下】

プロジェクトを新規作成したらまずは.env.exampleをコピーして.envファイルを作成し、各種設定を行いましょう。

そのほかのファイルについては必要に応じて手を加えていきます。

.env

動作環境に関する環境設定ファイルです。

アプリケーション名やDB、メールなどの動作環境、環境変数に関する記述を行います。

APP_ENVを環境ごとに分けておくと便利です。

.gitattributes .gitignore

git利用に関する記述を行います。

git利用時に特定のファイルをバージョン管理したくない時などに.gitignoreに記述したりで使用します。

artisan

artisanコマンドに関する記述をするファイルです。

composer.json composer.lock

composer利用に関するファイルです。

composer.jsonはcomposer update時、composer.lockはcomposer install時に読み込まれます。

package.json

Node.jsで書かれたJavaScriptのパッケージ管理ツール(npm)で利用するファイルです。

phpunit.xml

PHPUnit(ユニットテストプログラム)に関するファイルです。

server.php

ビルトインサーバー起動時に使用されるプログラムです。

【appディレクトリ】

Laravelアプリケーションで用意されているディレクトリの中で、最も重要かつ利用頻度が高いディレクトリです。

アプリケーションの主軸となるプログラムを格納していきます。

Console

artisanコマンド(Laravelに含まれるコマンドラインインターフェイス)を自分で作成した場合、ここに格納します。

Exceptions

例外処理を格納する場所です。

Http

コントローラやミドルウェアなど、アプリケーションへのリクエスト処理に関するロジックのほとんどを格納するLaravelの心臓部です。

恐らく最も頻繁に使う場所となります。

Providers

プロバイダと呼ばれるプログラム格納する場所です。

Laravelが起動する時の初期処理を記述したクラスで、全てのビューで共有できる変数の定義などを行えます。

User.php

ユーザ認証に関するスクリプトファイルです。

ユーザ登録機能をカスタマイズしたい時などに手を加えます。

【bootstrapディレクトリ】

アプリケーションの実行時に最初に行われる処理がまとめられているディレクトリです。

最初のうちは特に意識する必要はないです。

【configディレクトリ】

各種設定関連のファイルがまとめられているディレクトリです。

.envに記載した内容はここのconfigファイル経由で使用します。

公式でも各ファイル一読を推奨していますので、目を通しておくといいです。

app.php

アプリの主要設定。特にタイムゾーンの設定は重要です。

auth.php

認証に関する設定

broadcasting.php

イベントブロードキャストの設定

cache.php

キャッシュに関する設定

database.php

データベースの使用に関する設定

filesystems.php

ファイルストレージなどの設定

hashing.php

パスワードのハッシュに関する設定

logging.php

ロギングに関する設定

mail.php

メールサーバに関する設定

queue.php

ジョブキューに関する設定

services.php

メール関連機能のAPIベースドライバに関する設定

session.php

セッションの設定

view.php

ビューテンプレートの設定

【databaseディレクトリ】

データベース関連のファイルをまとめているディレクトリです。

マイグレーションファイル(データベースのバージョン管理のようなもの)やシードファイル(初期値設定)などを格納しています

【publicディレクトリ】

外部公開ディレクトリです。

JavaScriptcssなど外部にそのまま公開されるファイルを格納します。

アプリケーションに送られるリクエストのエントリーポイントであるindex.phpもここに格納されています。

【resourcesディレクトリ】

リソース関係ファイルの格納ディレクトリです。

プログラムが利用するリソースファイルが格納されています。

言語ファイルやviewもここに格納します。

【routesディレクトリ】

ルート情報の格納ディレクトリです。

アクセスするアドレスに割り当てられたプログラム情報などを格納します。

主にweb.phpを編集することになります。

【storageディレクトリ】

Bladeテンプレートをコンパイルしたファイル、セッション関係のファイル、キャッシュファイルなどが格納されるディレクトリです。

またアプリケーションのログもここに格納されるのでパーミッション設定は注意が必要です。

【testディレクトリ】

PHPUnitのようなユニットテストに関係するファイルを格納するディレクトリです。

【vendorディレクトリ】

Laravelフレームワークが提供するライブラリを構成するファイル群が格納されたディレクトリです。

中には膨大なファイルが格納されています。

Facadesについて調べる際に、laravel/framework/src/illuminate以下を覗くことが多いです

【まとめ】

アプリ開発を進めていくにあたりこの先最も利用頻度が高いのは、「app」、「routes」、「resources」

「database」ディレクトリになるかと思います。

その他のディレクトリは必要が生じた際にファイル作成、編集を行うケースが大半です。

まずはよく使うディレクトリの役割から覚えていきましょう。

次回はからいよいよアプリ開発に着手していきます。


次の記事へ

前の記事へ 目次に戻る