https://rakus.connpass.com/event/192297/
https://laravel.com/docs/8.x/releases
全14個の目玉機能のリリース
旧バージョンでmake:auth
とかlaravel/ui --auth
して作っていたログイン認証のスキャフォールディングの強化最新版。
加えて、Livewire
とInertia.js
の導入によりSPA的なモダンなUI実現が簡単にできるようになった。
認証機能として
モダンUIの実現
Eloquentのモデルが格納されるディレクトリがデフォルトでapp/Models
になった。
artisan
でmake:model
を実行すると、上記ディレクトリに作成される。
今まではapp
直下だったので、デフォルトだと使いづらったのが楽になる。
ちなみに、Models
ディレクトリを消すと、従来通りapp
配下に作られる。
リリースノート
Laravel8.xマニュアル
Laravel7.xマニュアル
RDBやRedisに対して送信するキューの送信処理について、送信する処理をクロージャで記載した場合も、catchで例外処理を追加できるようになりました。
リリースノート
Laravel8.xマニュアル
Laravel7.xマニュアル
通常、キューの送信は、キューによって呼び出される処理が定義されたJobクラスを作成し、そのクラス自身のdispatch()メソッドを呼び出すことで行いますが、
キューによって呼び出される処理をクロージャとして定義することも可能です。
(わざわざJobクラスをつくるほどでもない簡単な処理をキューとして実行する時用の機能)
v8.xからは、クロージャでキューで実行される処理を定義した場合に、処理に失敗した場合の例外処理(catch)を定義することができるようになりました。
複数のジョブをバッチ処理として実行することができ流ようになりました。
その際、thenやfinaly、catchを指定することで、バッチ処理の完了により、処理を実行できます。
クロージャベースのイベントリスナーは、クロージャをメソッドに渡すだけで登録できるようになる。
また、キューを追加することができるようになる。
また、キューに入れられたリスナーをカスタマイズできる。
実行前にどのコンポーネントを利用すべきかわからない場合があるが、それを解消することができる。
例えば、以下のように記述し、なんらかの処理にに失敗した場合は$componentName
にsuccess
を、失敗した場合はerror
を指定すれば、それぞれのコンポーネントを呼び出してくれる。
<x-dynamic-component :component="$componentName" class="mt-4" />
CSSフレームワークが Tailwind に変更になった。Bootstrap も引き続き利用可能
RouteServiceProvider がデフォルトになり、ルーティングの処理の書き方が分かった。
しかし、バージョンアップした人は問題なくこれまでの記法が利用できる($namespase プロパティを持っている場合問題なく自動的なプレフィックスが利用される)
おすすめ度【★】
モデルファクトリを生成してテスト用のデータを簡単に生成することができるようになります。
依存関係のあるテーブルにも自動的にデータを作成することができます。
faker の使い方
https://qiita.com/tosite0345/items/1d47961947a6770053af
モデルファクトリのドキュメント
https://readouble.com/laravel/8.x/ja/database-testing.html#persisting-models
現在時刻を調整する機能が追加された
テストケース内で利用する時間操作処理
https://readouble.com/laravel/8.x/ja/mocking.html#interacting-with-time
マイグレーションファイルをスキーマファイルに書き出しできる
書き出したdumpデータは artisan migrate したときに自動的にrestore してくれる。
dump した後に追加された migrate ファイルがある場合は、それの差分だけを実行してくれる
マイグレーションの圧縮
https://readouble.com/laravel/8.x/ja/migrations.html#squashing-migrations
リクエスト数を制限するなどの制御を加えることができるようになります
レート制限機能の紹介
https://tech-blog.rakus.co.jp/entry/20201016/laravel
artisan
コマンドにメンテナンスモードのオプションが追加され、ホワイトリストドメインを指定しなくてもメンテナンスモード以外のページにアクセスできるようになります。
--secret
オプションを付与することでメンテナンス状態でもアクセス可能にするCookieをセットする
メンテナンスモード中(デプロイを行っている最中など)にWebアクセスが発生すると composer による依存関係解決の際にエラーになっていた。
そこで、メンテナンスモードは特定のエラーページを表示するようにするオプションを追加できるようになった
php artisan down --render="errors::503"
.env ファイルが更新されたら ビルドインサーバが再起動する