広告

Laravel 12/Sail/WSL/Breeze 開発環境構築まとめ

概要

WSL(Windows Subsystem for Linux)&Docker開発環境 Larvel Sail上で、現在のLaravel最新版(Laravel 12)、ユーザ認証を含むスターターキットのLaravel Breezeをインストールし、日本語対応まで行います。

Laravel Sail でプロジェクト作成

プロジェクト名を「laravel-sample」としてインストール

curl -s "https://laravel.build/laravel-sample" | bash

laravel-sampleディレクトリが生成され、それ以下にファイル群が展開されます。

sailコマンドのエリアス設定

sailコマンドのパスは「vendor/bin/sail」だが、面倒なので「sail」だけで実行できるようにします。
※すでに設定している場合は無視で。
~/.bashrc に以下を追記

# Laravel Sail Command Alias
alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'

再ログイン時には自動で読み込まれますが、即時読み込みするには以下のコマンドを実行します。

~/laravel-sample$ source ~/.bashrc

phpMyAdminを追加

データベース操作用にLaravel Sail にphpMyAdminを追加します。
docker-compose.yml

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        links:
            - mysql:mysql
        ports:
            - 8080:80
        environment:
            MYSQL_USERNAME: '${DB_USERNAME}'
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            PMA_HOST: mysql
        networks:
            - sail

Laravel 12 環境設定

環境設定ファイル.envを編集します。
.env

APP_NAME=Laravel-sample
APP_ENV=local				# 公開時はproduction

APP_DEBUG=true				# 公開時はfalse

APP_LOCALE=ja               # 日本語
APP_FALLBACK_LOCALE=ja      # 日本語
APP_FAKER_LOCALE=ja_JP      # 日本語

#LOG_CHANNEL=stack			# このままだと1ファイルにすべて記述されるため変更
LOG_CHANNEL=daily			# laravel.logを日別保存にします:laravel-yyyy-mm-dd.log形式

#SESSION_DRIVER=database    # データベースにセッション情報を保存
SESSION_DRIVER=file         # ファイルにセッション情報を保存

タイムゾーン変更

Laravel 12ではconfig/app.phpを直接変更する必要がある。
config/app.php

# 'timezone' => 'UTC',
'timezone' => 'Asia/Tokyo',

もしくは、config/app.phpで

'timezone' => env('APP_TIMEZONE', 'UTC'),

として、.envで

APP_TIMEZONE=Asia/Tokyo

Laravel Breeze のインストール

Laravel Sail 起動

~/laravel-sample$ sail up -d

Laravel Breeze のインストール

~/laravel-sample$ sail composer require laravel/breeze
~/laravel-sample$ sail artisan breeze:install

 ┌ Which Breeze stack would you like to install? ───────────────┐
 │ › ● Blade with Alpine                                        │
 │   ○ Livewire (Volt Class API) with Alpine                    │
 │   ○ Livewire (Volt Functional API) with Alpine               │
 │   ○ React with Inertia                                       │
 │   ○ Vue with Inertia                                         │
 │   ○ API only                                                 │
 └──────────────────────────────────────────────────────────────┘

 ┌ Which Breeze stack would you like to install? ───────────────┐
 │ Blade with Alpine                                            │
 └──────────────────────────────────────────────────────────────┘

 ┌ Would you like dark mode support? ───────────────────────────┐
 │ No                                                           │
 └──────────────────────────────────────────────────────────────┘

 ┌ Which testing framework do you prefer? ──────────────────────┐
 │ › ● Pest                                                     │
 │   ○ PHPUnit                                                  │
 └──────────────────────────────────────────────────────────────┘

マイグレーション

~/laravel-sample$ sail artisan migrate

日本語化

言語パッケージインストール

~/laravel-sample$ sail composer require --dev laravel-lang/lang laravel-lang/publisher

言語ファイル展開

~/laravel-sample$ sail artisan lang:add ja