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
コマンドを使って様々なタスクを実行できる