Laravel / Lumen 9.x 開発環境構築(2)

Laravel / Lumen 9.x 開発環境構築(2)

前回、素のPHP開発環境、Lumenの開発環境を、docker-compose で構築しました。今回は、引き続き Laravel の開発環境にトライします。公式ドキュメントに従って、docker-compose を利用した開発環境を作ります。下記のコマンドを実行しましょう。

curl -s https://laravel.build/laravel-dev | bash

赤字の部分は、任意のディレクトリ名に変更して構いません。しばらくスクリプトが実行されると、任意のディレクトリにLaravelの実行環境が整います。この開発環境をLaravel Sail といい、先程のコマンドで、mysql、php、redis、mailsearch、mailhog、seleniumを docker-compose で構築してくれていて、いきなり使い始めることができるすぐれものです。

docker-compose で構築されているので、あとはいつもの知識で!と思いがちですが、この環境を操作するときは、sail コマンドを利用する必要があります。もちろん無理やり動かせなくはないのですが、要するに、docker-compose up ではなく、次のコマンドでサーバーを起動します。

# 作成したディレクトリの中に入ります
cd laravel-dev

# コンテナーを起動します
./vendor/bin/sail up

もちろん、先程の環境を起動したまま実行するとポートがぶつかって起動できないので、同時に起動しないか、必要に応じて利用するポートを変更しましょう。この Laravel Sail が初期状態で利用するポートは、以下になります。

  • Webサーバー:80
  • Viteサーバー:5173
  • MySQLサーバー:3306

ポート番号の変更は、docker-compose.yml を直接編集するのではなく、.env ファイルにポートを定義する形で変更します。

  • Webサーバー:APP_PORT
  • Viteサーバー:VITE_PORT
  • MySQLサーバー:FORWARD_DB_PORT

それぞれを、.env ファイルに追記すると下記のようになります。ポート番号は任意の変えたいポートを指定してください。

APP_PORT=8888
VITE_PORT=15173
FORWARD_DB_PORT=13306

.env ファイルに上記を追記・変更し、再度 ./vendor/bin/sail up を実行すると利用ポートが変更されています。他のプロジェクトで使っているポートとかぶったりした場合は、上記の手段でポート番号を変更しましょう。

初期設定では、80番ポートでリスンしてるので、http://localhost でアクセスすると、下記の画面が表示されます。

Viteサーバーについて聞き慣れない方もいるかもしれません。これは、Rust で記述されて高速であるといわれるフロントエンド開発用のバンドラーです。

Laravel においてもフロントエンドの技術として、React、Vue、Svelt、Lit、SolidJS などを利用することがあるでしょう。その場合 Laravel Sail では最初からバンドラーの設定まで終わらせてくれています。

この環境下で、例えばVue3を利用する場合、Laravel に内蔵されているBladeに@viteでファイル読み込みを記載すると、開発中(Viteが起動しているとき)は、HMRで自動的にJS/TSファイルが読み込まれます。停止すると、Vite でビルドしたJSファイルが読み込まれます。

ココらへんに関しては、Laravel でVue3 を使う別回を設けたいと思います。また、Inertia.js を利用したLaravel 限定になってしまいますが、REST APIなしで、Vueと通信する方法、さらにフロントエンドのVueも使わず、すべて通信からサーバーサイドまで、全部PHPで記述する Laravel Livewire について、そのうちできたらいいなーと思っています(その前に、教えるときは、PHP言語そのものと、そもそものLumenとLaravel の使い方をちゃんと覚えてほしいので、全部終わってから次の技術スタック積みたい、選択肢が多いのはいいけど、特にフロントエンドは最近複雑すぎるし、初学者混乱する可能性大)。

手順としては、非常にシンプルでサクッと Laravel を動かし始められます。便利な世の中になりました、ほんと。これで、素のPHP、Lumen、Laravel それぞれの開発環境を、迅速に準備することができるようになりました。

いきなりLumenに行きたいところですが、せっかく素のPHP開発環境用意したのと、本当に初学者がPHPから入り、Laravel を扱い始めるまでの流れとして、今一度、index.php で echo するところから(笑)確認していきたいと思います。これは、意外とPHP3、4の時代から技術的に止まっている人にも言えることですが、現在 PHP8.1 で昔のPHPとは大幅に進化していると思います、もちろん動作スピードもさることながら。書きやすいとか好きとかは、どうでもいいんですけど、このあとLaravel を触るときに、言語仕様の理解が足りなくつまずくことが無いように、丁寧に確認していけたらなぁと思っています。

このブログも教育資料作る手間こっちに持ってきてるだけなので、知っている人にはつまらない話ばかりかもしれませんが、数年ぶりの ただいまPHP の人は、最近のPHPを追うのに活用してもらえたら幸いです。本当は、個人的にはPythonのほうが書きや(ry

では、また。

最新の更新を
プッシュ通知で購読しよう