Laravel+React+Breeze+Inertiaでローカル環境を作成する方法

※当サイトは、アフィリエイト広告を利用しています
PHP
スポンサーリンク

今回はLaravel+React+Breeze+Inertiaでローカル環境を作成する方法を紹介します。

LaravelとReactはどちらもweb開発でシェア率の高いフレームワークですのでそれらを使ったプロジェクトを作ってみたい方の参考になれば幸いです。

さらに今回はLaravel SailというDockerで手軽にローカル環境が構築できる方法を紹介するのでLaravel Sailでのローカル環境構築方法を知りたい方にもおすすめです。

この記事を読むメリット

  • Laravel Sailを使ったローカル環境構築の方法が分かる
  • Laravel、React、Breeze、Inertiaでのwebアプリの作成方法が分かる
スポンサーリンク

Laravel SailでLaravel+React+Breeze+Inertiaのローカル環境作成

まずはどういった構成で作成していくかご紹介します。

  • ローカル環境:Laravel Sail
  • フロント:React
  • バック:Laravel
  • 認証:Breeze(Laravelを使ったユーザー認証システムのパッケージ)

このような構成になります。

Inertiaについて

そして今回は「Inertia」というものを使います。

これはバックエンドのLaravelとフロントエンドのReactの橋渡し的な役割を担うものです。

今までのLaravelと同じような書き方でフロント側のReactとやりとりができることが特徴です。

公式には以下のように紹介されています。

Inertia is a new approach to building classic server-driven web apps. We call it the modern monolith.

Inertia allows you to create fully client-side rendered, single-page apps, without the complexity that comes with modern SPAs. It does this by leveraging existing server-side patterns that you already love.

「monolith」とは日本語で一枚岩という意味です。

クライアント側とサーバー側を一枚岩のように繋ぎ合わせるためのものだということです。

Laravelの書き方に慣れていて、手軽にjsフレームワークを導入したい場合におすすめです。

今回はLaravelとReactですが、他にもRailsやVueSvelteなどにも対応しています。

Inertia公式はこちら。

https://inertiajs.com

スポンサーリンク

Laravel+React+Breeze+InertiaをLaravel Sailで構築する方法

それでは早速構築する方法を紹介していきます。

Laravelプロジェクトの作成

まずはLaravelのプロジェクトを作成します。

事前にDockerアプリのインストールと起動されていることを確認してください。

laravel Sailを使うとコマンド1つでDocker環境のLaravelプロジェクトが作成できます。

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

「laravel_react_with_breeze_inertia」はプロジェクト名になりますのでお好みに変更いただいてOKです。

Dockerが起動していないと「Docker is not running.」と表示されるので起動させてください。

途中パスワード入力が求められるのでPCのパスワードを入力します。

作成が終わったらプロジェクトに移動して起動させます。

cd laravel_react_with_breeze_inertia
./vendor/bin/sail up -d

これでデフォルト状態のLaravelプロジェクトが作成され「http://localhost」にアクセスすると、トップページが表示されるはずです。

Lravelトップページ

対象ファイルは「resources/views/app.blade.php」です。

トップページがうまく表示されない場合

http://localhost」にアクセスすると以下のようなエラー画面が表示される場合もあります。

Laravelエラー画面

Laravelに必要なDBのテーブルが存在していないことが原因のようです。

migrationを実行してテーブルを作成する必要があります。

まずは起動しているサーバーにアクセスします。

「./vendor/bin/sail up」で起動している場合は、新しくコマンドを立ち上げて以下コマンドを実行します。

./vendor/bin/sail shell

すると以下のようなディレクトリに移動します。

sail@e5c80f387070:/var/www/html$

これでサーバーにアクセスできました。

続いてmigrationを実行します。

php artisan migrate

初期で必要なデータベースの作成を実行してくれます。

以下のような表示になればOKです!

sail@e5c80f387070:/var/www/html$ php artisan migrate  

   INFO  Preparing database.  

  Creating migration table ........................................................................................................... 61.74ms DONE

   INFO  Running migrations.  

  0001_01_01_000000_create_users_table .............................................................................................. 197.47ms DONE
  0001_01_01_000001_create_cache_table ............................................................................................... 63.85ms DONE
  0001_01_01_000002_create_jobs_table ............................................................................................... 138.11ms DONE

sail@e5c80f387070:/var/www/html$ 

もう一度「http://localhost/」にアクセスして先ほどのトップページが表示されればOKです。

エラーが出た場合はお試しください。

エイリアス設定がおすすめ

Bashエイリアスを設定することで、「./vendor/bin/sail up」のように毎回打つ手間を省くこともできます。

alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

こうすることで、「sail up -d」とするだけで起動ができます。

コマンドを打つ手間が軽減されるのでおすすめです。

Breeze、Inertia、Reactのインストール

Laravelのプロジェクトが作成できたら、Breeze、Inertia、Reactも追加してきます。

まずはBreezeをインストールします。

以下コマンドを実行します。

./vendor/bin/sail composer require laravel/breeze --dev

これでBreezeがインストールされます。

続いて、InertiaとReactをセットでインストールします。

./vendor/bin/sail artisan breeze:install react

これでフロント側がReactで実装できるようになりました。

続いてフロントエンド側のビルドを行います。

./vendor/bin/sail npm install
./vendor/bin/sail npm run dev

「npm install」で依存関係のインストールと、フロント側の開発サーバーを立ち上げました。

最後はマイグレーションを実行して、データベースを作成します。

以下コマンドで開発サーバーにログインします。

./vendor/bin/sail shell

ログインできたら、マイグレーションを実行します。

sail@e5c80f387070:/var/www/html$ php artisan migrate

これで完了です。

認証追加済みトップページ

認証機能や、jsファイルの更新が反映されていれば成功です!

対象ファイルは「resources/js/Pages/Welcome.jsx」で表示されるようになっています。

エンジニアにおすすめ書籍

エンジニアになりたて、これから勉強を深めていきたいという方におすすめの書籍はこちら!

Laravel Sailを使って手軽に環境構築

Laravel Sailを使うと手軽にコマンドを打つだけでローカル環境を作成することができます。

docker-compose.ymlなどで設定ファイルを書きながらやるのも勉強になって良いですが、LaravelやReactの勉強がメインであればまずはそこにフォーカスできるのが一番だと思っています。

それ以外のところでつまづいて勉強自体のモチベが下がってはもったいないです。

ぜひこの方法でローカル環境構築をお試しください。

不明点や質問があればお気軽にお問い合わせください!

タイトルとURLをコピーしました