CreateLife ~AlwaysLatest~

【Laravel10*M3】Laravelプロジェクトの始め方

CODE PHP

Macを新調して開発をしていくにあたって、自分のMacの環境はあまり汚したくない(必要ないライブラリなどは入れたくない)のでスマートに開発、デプロイができるように手順をまとめておきます。
Laravel11は結構破壊的なモデルチェンジなのでLaravel10の開発環境を整えるものとします。

目次

  • dockerを使ってプロジェクトを作成
  • 動作確認
  • 参考にした記事

dockerを使ってプロジェクトを作成

M3搭載のMacにはPHPは搭載されていない。そういう方針ならPHPerとしては悔しいが、あえてPHPをインストールしてComposerをインストールして、、は時代に逆らっている気がするのでやらない。
laravel.buildを使ってインストールを行います。これは内部的に、laravelsailのdcockerイメージを呼び出してインストールを行います。PHPのruntimeの指定をしないと最新のLaravel11になってしまうのでLaravel10の最低条件であり、Laravel11の条件外であるPHP8.1を指定する

$ curl -s "https://laravel.build/my-project?php=81" | bash 

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

.zshrcに設定を書き込んで反映させます。

# ~/.zshrcに以下を追加
alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'
# 設定反映
$ source ~/.zshrc

ポートを割り当てて競合を避ける

起動する前に.envを開き、使用するポートを追記します。この手順が漏れると、複数のLaravel開発環境を起動したときに、portが競合してしまって起動に失敗します。ダイナミック/プライベートポートは、49513~65535の範囲で割り当てられるので、競合しないようにPORTを割り当ててください。

# .env
APP_PORT=50080
VITE_PORT=55173
FORWARD_DB_PORT=53306
FORWARD_REDIS_PORT=56379
FORWARD_MAILPIT_PORT=51025
FORWARD_MAILPIT_DASHBOARD_PORT=58025
FORWARD_PHPMYADMIN_PORT=58080

phpmyadminのコンテナを追加する

任意ですが、私は入れたいのでdocker-compose.ymlファイルのservicesの中に以下を追加

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

コンテナを立ち上げる

$ sail up -d

動作確認

ブラウザからアプリケーションにアクセス

phpmyadminにアクセス

メールを送信してみる

# tinkerを起動
$ sail artisan tinker

# 対話モードで以下を入力
Mail::raw('hello world', fn($msg) => $msg->subject('test')->to('test@example.com'));

ブラウザで確認

参考にした記事

https://zenn.dev/imah/articles/5d761f8f8c26fe