3_Laravel10_ディレクトリ構成

sample-app
app ・・・アプリケーションのロジック用
artisan ・・・Laravelを操作するコマンドプログラム
bootstrap ・・・起動用コード用(基本触らない)
composer.json ・・・プロジェクトの設定やライブラリの依存関係が記述されている
composer.lock ・・・実際にインストールするライブラリとそのバージョンを記録している
config ・・・設定用
database ・・・マイグレなどDB関連用
docker-compose.yml ・・・複数のDockerコンテナを起動し連携させる設定が記述されたファイル
package.json ・・・
phpunit.xml ・・・
public ・・・Webサーバのドキュメントルート
resources ・・・Viewファイル用
routes ・・・ルーティング用
storage ・・・ログなどのLaravelが生成するファイル用
tests ・・・テストコード用
vendor ・・・Composerでインストールしたライブラリ用
vite.config.js ・・・
.editorconfig
.env ・・・環境変数を定義するファイル
.env.example ・・・ 「.env」のテンプレート。コピーして名前を「.env」にする
.gitattributes
.gitignore

詳細

アティーザン
artisan ・・・Laravelを操作するコマンドプログラム

プログラムの作成や現在の設定の確認、サーバ起動などの操作をartisanコマンドで行う
例↓アプリを起動してから実行する

sail artisan list

.env ・・・環境変数を定義するファイル

データベースの接続先やメールサーバの情報など、環境ごとに異なる情報を設定する
.envは.gitignoreによってリポジトリによって共有されないようにする

.env.example ・・・ 「.env」のテンプレート。コピーして名前を「.env」にする

コピーして名前を「.env」にしパスワードなどを書換え自分用の「.env」を作成する
何か別の環境変数を追加することになったら.env.exampleにも追加する。
.env.exampleは共有されるので開発者にも必要な環境変数を知らせることができる

composer.json ・・・プロジェクトの設定やライブラリの依存関係が記述されている

ComposerはLaravelのアプリに必要なライブラリなどがある場合はComposerを通してインストールすることで、依存関係を解決してくれる

composer.jsonを開いて見てみる
requireはLaravel実行時に依存するライブラリ一覧が記載されている
“php”: “^8.1”,は8.1以上8.2未満のPHPを使用するということを意味する

"require": {
 "php": "^8.1",
 "guzzlehttp/guzzle": "^7.2",
 "laravel/framework": "^10.10",
 "laravel/sanctum": "^3.2",
 "laravel/tinker": "^2.8"
},

require-devには開発時に依存するライブラリの一覧が記載されている
“laravel/sail”の記述がされており、Sailに依存していることがわかる

"require-dev": {
 "fakerphp/faker": "^1.9.1",
 "laravel/pint": "^1.0",
 "laravel/sail": "^1.18",
 "mockery/mockery": "^1.4.4",
 "nunomaduro/collision": "^7.0",
 "phpunit/phpunit": "^10.1",
 "spatie/laravel-ignition": "^2.0"
},

composer.lock ・・・実際にインストールするライブラリとそのバージョンを記録している

composer.lockを共有することで、プロジェクトメンバーは同じライブラリをインストールすることができる

docker-compose.yml ・・・複数のDockerコンテナを起動し連携させる設定が記述されたファイル

Laravelプロジェクトがどのように他のソフトウェアと連携しているのか理解するには大切なファイル
「sail-8.2/app」コンテナと「mysql/mysql-server:8.0」を立ち上げるという意味

version: '3'
services:
    laravel.test:
        build:
            context: ./vendor/laravel/sail/runtimes/8.2
            dockerfile: Dockerfile
        image: sail-8.2/app

#・・・省略
    mysql:
        image: 'mysql/mysql-server:8.0'

#・・・省略

Author: gaa

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です