ご質問・お見積り等お気軽にご相談ください
お問い合わせ

何も知らない Cakeユーザー が Laravel8 入門を Jetstream で着地するまで

何も知らない Cakeユーザー が Laravel8 入門を Jetstream で着地するまで

こんにちは、うのです。PHPを使ってサービス開発をしています。普段はPHPフレームワークには CakePHP を選択して仕事をしていますが、Laravel が最近気になってきたので、触ってみました。

環境構築までをまとめてみましたので、参考にどうぞ。

2021/01/22 追記: 続きの記事を公開しました!

▼続きはこちら

CakePHPユーザーのための Laravel Livewire 超入門

Laravel入門者の苦悩

Laravel 初めてだから、早速ガイドを観ようーと思って公式のガイドにアクセスしてみたところ、

なんと最新版の Laravel8 のガイドにはイントロダクションもないし、クイックスタートもない。最新のクイックスタートは v4.2 のもの。5年以上前。古い。どういうことよコレ。

さらに、Laravel8, Laravel7, Laravel6以前 の間で全然内容が違うみたいで、さらに Laravel7 も 8 もリリースされたのは今年の出来事。さらにさらに、長期サポートが受けられるのは6まで。

おーそうかい。どれを使えばいいのか全然わからんぞ。

あきらめてブログなどをあたって調べてみると、Lareavel8 でリリースされた機能に 「Jetstreamパッケージ」 なるものがあるらしい。ユーザーの新規登録、メール認証、2段階認証、プロフィール編集画面、アクセスログ、さらには権限までが、インストールするだけで完成するんだそうですよ。

ぃゃなんだそれは。ふーん、便利じゃん。

……と、いうことで、ほぼ興味だけで Laravel8 をJetstreamで入門してみることにしました。

なんとか環境構築までこぎつけました。参考になれば幸いです。

参考にさせていただいた記事

と意気込んでみたはいいけど、Laravel のインストールには composer を使うのに、Jetstream のインストールには node.js を使うようで。

両方別々に使ったことはあるけど、同時に使うのは全然イメージわかない……!

ということで、構築済みのDockerイメージを探して使うことにしました。丸投げ最高。

参考にさせていただいたのは以下の記事です。

これらの記事はGitHubのリポジトリに紐づいていて、ソースがDLできます。今回はこれを全力で利用します。

「Dockerって何?」って人も上記の記事を読めばなんとなくわかると思うので、一度読んで戻ってきてください。

何はともあれ Docker を立ち上げよう

やることは簡単です。

  • 1. 必要なソフトウェアをインストール
  • 2. Gitからソースをダウンロード
  • 3. Docker-compose で Dockerコンテナ を立ち上げ
  • 4. Jetstream をダウンロード&インストール

1. 必要なソフトウェアをインストール

これからの作業をするためには、以下のソフトウェアが必要です。

  • Docker Desktop
  • 【Windowsユーザーだけ】 make for Windows

makeに関しては、「Windows10でmakeしたい」が参考になります。これはインストールしたらパスを通して、再起動をするのが必要なヤツです。

以下、コードエディターは VS Code を想定して記述しますが、持っていない人はこちらもインストールするか、適宜読み替えて下さい。

2. Gitからソースをダウンロード

GitHubに公開されてるテンプレート「docker-laravel」をダウンロード・解凍します。GitHubにアカウントを持っている人は、「Use This Template」をクリックすると、自身のリポジトリにコピーが追加されるので便利です。

3. Docker-compose で Dockerコンテナ を立ち上げ

ダウンロード・解凍したフォルダを VS Code で開き、ターミナルを立ち上げます。コマンドプロンプトを開いて、フォルダに移動してもいいです。

立ち上げたターミナルで、

make create-project

 

を実行すると、Laravelのインストールと起動が始まります。

終了したら http://localhost にアクセスしてください。Laravel が動作しているのが見えるはずです。

失敗するときは

インストールに失敗する場合は、使用するDockerイメージのバージョンを見直すと良いかもしれません。僕の場合は、 node.js と nginx のバージョンに問題があったので、

/infra/docker/nginx/Dockerfile の最初のブロック

FROM node:14.2-alpine as node FROM nginx:1.18-alpine

 

FROM node:15.1.0-alpine3.12 as node FROM nginx:1.19.4-alpine

 

に変更しました。それぞれ最新のDockerイメージを使うように変更した形です。

4. Jetstream をダウンロード&インストール

問題なく立ち上がったら、次のコマンドを実行します。

docker-compose exec app composer require laravel/jetstream docker-compose exec app php artisan jetstream:install livewire docker-compose exec app php artisan migrate docker-compose exec web yarn install docker-compose exec web yarn dev

 

終わったら、再び http://localhost にアクセスしてみてください。ヘッダに 「Login」 「Register」 (それぞれログインと新規会員登録の意味)が表示されるハズです。

この時点で、なんと

  • 新規会員登録
  • ログイン
  • 2段階認証
  • プロフィール編集
  • アクセスログの収集

が完成してます。やば。

【閑話休題】 make って何をしたのさ

途中で

make create-project

 

を実行してね、と言いましたが、Windowsユーザーには馴染みが薄いものですねこれは何かというと、 マクロです。

マクロの定義は Makefile というファイルにしてあります。内容的にはこんな感じ。

# Dockerを起動する up: docker-compose up -d # Dockerをビルドする build: docker-compose build –no-cache –force-rm # Laravelをインストールする laravel-install: docker-compose exec app composer create-project –prefer-dist laravel/laravel . # プロジェクトを作成する create-project: @make build @make up @make laravel-install docker-compose exec app php artisan key:generate docker-compose exec app php artisan storage:link @make fresh

 

ここに書いてある「up」とか「build」とかが、先ほど make create-project と実行したのと同じように実行できるわけです。Docker はなんだかんだコマンド操作が多いから、これは便利。

docker-laravel」には他にも沢山マクロの定義があるので、困ったときはMakefileの中身を参照してみるといいと思います。(丸投げ)

Laravel入門 を Jetstream で着地しました

今まで苦労して作成していた機能が、本当にインストールするだけで完成してしまいました。驚きです。

composer だけでいいと思っていたら、Jetstreamをインストールするのに node.js が必要って分かった瞬間に思考放棄モードになってDocker に丸投げを決め込んだわけですが。

とりあえず覚えることが多そうだなぁという印象ですね。

でもこれだけの仕組みを公式で用意してくれているなら、覚えてみようという気力も湧いてくるというものです。

とはいえまだ環境構築をしただけなので、後で「クイックスタート Laravel8 版」みたいな記事を書きたいなぁと思います。

 

2021/01/22 追記: 続きの記事を公開しました!

▼続きはこちら

CakePHPユーザーのための Laravel Livewire 超入門