Laravel - 3. プロジェクトの構成

example-app という名前のLaravelプロジェクトを作成できたので ls コマンドを使って example-app フォルダの中身を確認してみましょう。

$ ls -l
total 632
-rw-r--r--   1 codeguide3  staff    4051 12 22 19:07 README.md
drwxr-xr-x   7 codeguide3  staff     224 12 22 19:07 app
-rwxr-xr-x   1 codeguide3  staff    1686 12 22 19:07 artisan
drwxr-xr-x   4 codeguide3  staff     128 12 22 19:07 bootstrap
-rw-r--r--   1 codeguide3  staff    1745 12 22 19:07 composer.json
-rw-r--r--   1 codeguide3  staff  289427  1 16 07:27 composer.lock
drwxr-xr-x  17 codeguide3  staff     544 12 22 19:07 config
drwxr-xr-x   6 codeguide3  staff     192 12 22 19:07 database
-rw-r--r--   1 codeguide3  staff    2702  1 16 07:28 docker-compose.yml
-rw-r--r--   1 codeguide3  staff     473 12 22 19:07 package.json
-rw-r--r--   1 codeguide3  staff    1202 12 22 19:07 phpunit.xml
drwxr-xr-x   6 codeguide3  staff     192 12 22 19:07 public
drwxr-xr-x   6 codeguide3  staff     192 12 22 19:07 resources
drwxr-xr-x   6 codeguide3  staff     192 12 22 19:07 routes
-rw-r--r--   1 codeguide3  staff     563 12 22 19:07 server.php
drwxr-xr-x   5 codeguide3  staff     160 12 22 19:07 storage
drwxr-xr-x   6 codeguide3  staff     192 12 22 19:07 tests
drwxr-xr-x  45 codeguide3  staff    1440  1 16 07:28 vendor
-rw-r--r--   1 codeguide3  staff     559 12 22 19:07 webpack.mix.js

上記のように example-app フォルダの中に、たくさんのフォルダやファイルが作られていることを確認できます。

ここではLaravelプロジェクト( example-app フォルダ)の中身について確認しておきましょう。まずは各フォルダの役割について見ていきます。

フォルダ名 用途
app アプリケーションの主要なプログラムを配置する
bootstrap フレームワークの初期化を行うファイルやキャッシュファイルなどを配置する
config 設定ファイルを配置する
database データベースのマイグレーション、ファクトリー、シードデータなどを配置する
public 公開フォルダ。画像やJavaScript、CSSなどのアセットを配置する
resources ビューなどの未コンパイルのファイルや、言語ファイルなどを配置する
routes アプリケーションのルート定義を管理する
storage コンパイル済みのBladeテンプレート、セッション情報、ログファイルなどを管理する
tests 自動テストプログラムを配置する
vendor Composerによって取得したライブラリを配置する

最初からすべてのフォルダの役割を理解することは難しいので、アプリケーションの開発を進めながら各フォルダの使い方について学習していきましょう。現時点では、これから開発するプログラムの多く(コントローラやモデルなど)は app フォルダに配置し、ビューファイルは resources フォルダ、データベースに関係するものは database フォルダに配置する、程度に見ておきましょう。

続いて hello_laravel フォルダ直下に作成されているファイルについても確認しておきましょう。

ファイル名 用途
README.md アプリケーションの説明書き
artisan artisan コマンドの実行ファイル
composer.json composerのパッケージ管理ファイル
composer.lock composerのパッケージ管理ファイル(依存性を解決済みのもの)
docker-compose.yml docker-composeの設定ファイル
package.json Node.jsのパッケージ管理ファイル
phpunit.xml PHPUnitの設定ファイル
server.php ビルトインサーバの起動ファイル
webpack.mix.js フロントエンドのアセットをバンドルするLaravel Mix(webpack)の設定ファイル
.env 環境変数を設定するファイル
.env.example 環境変数の設定のサンプルファイル

他にも .gitignore ファイルなどいくつかの隠しファイルも生成されます。

./vendor/bin/sail artisan コマンドで指定した artisan ファイルや、composerのパッケージ管理ファイルである composer.json ファイルや composer.lock などがあります。また sail コマンド内で参照しているdocker-compose.yml も確認できます。

docker-compose.yml を編集すればMySQLやRedisなどのミドルウェアの定義を変更できます。

.env ファイルには環境変数に登録する変数を定義します。具体的にはデータベースとの接続情報や、セッションの管理方法、メールサーバの設定などを定義します。

artisan

Laravelにはターミナルで利用するユーティリティとして artisan が用意されています。artisan コマンドを使うことでWebサーバを起動したり、モデルやコントローラといったファイルを作成したり、様々なタスクを実行できます。Laravel Sailを利用している場合は ./vendor/bin/sail artisan サブコマンド のように入力して利用します。

Laravel Sailを利用していない場合は php artisan サブコマンドのように入力します。

まとめ

  • Laravelでは規定のプロジェクトの構成に従ってプログラムを開発する
  • app フォルダにコントローラやモデルといったプログラムを配置し、 resources フォルダにビューを配置する
  • artisan コマンドを使って様々なタスクを実行できる