LoginSignup
2
6

More than 3 years have passed since last update.

【laravel】laravelのディレクトリ構造

Last updated at Posted at 2020-03-12

概要

「laravel new プロジェクト名」または「composer create-project laravel/laravel プロジェクト名」で作成したプロジェクトフォルダの中身を簡単に整理します。
対象となるlaravelのバージョンは6です。
またlaravel6では対応するPHPのバージョンが7.2以降となっています。
※フォルダ名(プロジェクト名)の部分は「laravel」と表記します。

laravel直下のファイルとフォルダ

プロジェクトを作成すれば自動で生成されるファイルとフォルダです。

laravel直下のファイル

プロジェクトを作成すれば自動で生成されるファイル。

.editorconfig エディタに関する汎用設定ファイル
.env、.env.example 動作環境に関する設定情報
.gitattributes、.gitignore git利用に関する情報
.styleci.yml StyleCIというコードチェッカー
artisan artisanコマンド
composer.json、package.json composerの利用に関するもの
phpunit.xml PHPUnitに関するもの
server.php サーバー起動時に利用されるプログラム
webpack.mix.js webpackというJavaScript(npm)パッケージツールで使うもの

laravel直下のフォルダ

プロジェクトを作成すれば自動で生成されるフォルダ。

app アプリケーションのコアとなるコードを含むフォルダで、アプリケーション内のほとんどのクラスはこの中に設置されます。
ディレクトリ内の詳細は下記する。
bootstrap フレームワークの初期処理を行うapp.phpファイルを含んでいます。
その中のcacheディレクトリは初期処理のパフォーマンスを最適化するため、フレームワークが生成するルートやサービスのキャッシュファイルが保存されるフォルダです。
config アプリケーションの全設定ファイルが設置されています。
database データベースのマイグレーションとモデルファクトリ、初期値設定(シーディング)を配置します。
また、SQLiteデータベースの設置場所としても利用できます。
public アプリケーションへの全リクエストの入り口となり、オートローディングを設定するindex.phpファイルがあります。
また、画像、JavaScript、CSSなどを配置します。
resources ビューやアセットの元ファイル(LESS、SASS、JavaScript)で構成されています。また、すべての言語ファイルも配置します。
routes アプリケーションの全てのルートを定義するディレクトリ。
デフォルトでは web.php api.php console.php channels.php といったルートファイルが用意されています。
ディレクトリ内の詳細は下記する。
storage コンパイルされたBladeテンプレート、セッションファイル、キャッシュファイルなど、フレームワークにより生成されるファイルが保存されます。
このフォルダはapp、framework、logsの3つのディレクトリに分かれています。
tests PHPUnit のような自動テストを配置しています。
各テストクラスはサフィックスとしてTestを付ける必要があります。 テストはphpunitまたは、php vendor/bin/phpunitコマンドにより実行できます。
vendor Composerによる依存パッケージが配置されています。
継承元のクラスを参照したいときはlaravel/framework/src/illuminate以下を辿ると中身を確認できる。

appフォルダ

アプリケーションの主要部分が配置されるフォルダ。
このディレクトリはデフォルトでPSR-4オートローディング規約を使いComposerがオートロードしています。
「php artisan make:」コマンドでディレクトリを指定せずにモデルを生成するとappディレクトリ直下に生成される。

Console アプリケーションの全カスタムArtisanコマンドで構成します。
これらのコマンドクラスはmake:commandコマンドにより生成されます。
コンソールカーネルもこのディレクトリ内にあり、カスタムArtisanコマンドや、タスクのスケジュールを登録します。
Exceptions 例外に関する処理を配置するところです。
\Handler.phpを修正すれば例外のログやレンダリングをカスタマイズできる。
Http コントローラ、ミドルウェア、フォームリクエストが設置されています。 webアプリケーションにアクセスしたときのリクエストを処理するほとんどのロジックがこのディレクトリ内に設置されている。
Providers アプリケーションの全サービスプロバイダにより構成しています。
サービスプロバイダは、サービスをコンテナと結合したりイベントの登録やリクエストを処理するために必要な用意をするタスクを実行するなど、アプリケーションの事前準備を行います。
User.php ユーザー認証に関するスクリプトです。

routesフォルダ

ルーティングに関する情報をまとめているフォルダ。
Webページに公開する情報はweb.phpにルート情報を記述する。

api.php APIのルーテイングです。例えばユーザー認証などのように、プログラム内から利用するAPIの機能を特定のアドレスに割り当てるのに利用されます。
channels.php ブロードキャストチャンネルのためのルーテイングです。
console.php コンソールプログラムのためのルーテイングです。
web.php 一股的なWebページとしてアクセスするためのルーテイングです。

参考

Laravel 6.* ディレクトリ構造

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6