Laravel 6から8のまとめ


最近、オフィスが引っ越しました。…がまだ一回も行ってません。
素敵になってるそうなので今度行ってみます↓
https://www.wantedly.com/companies/manebi/post_articles/302328

##Laravelバージョン別まとめ
自分の中でLaravel5.5で止まっているので改めてリリースノートからリファレンス的にまとめてました。
###Laravel6の新機能
####Semantic Versioning
パッケージが、セマンティックバージョニング規約に準拠しました。
####Laravel Vapor Compatibility
Laravel6は、Laravelのためのオートスケールされるサーバレス環境のプラットフォームであるLaravel Vaporとのコンパチビリティを提供。
####Improved Exceptions Via Ignition
　・エラー時のページ生成機能
　・デバッグ時に使える
####Improved Authorization Responses
　・認証時のレスポンス
####Job Middlewre
　・非同期で処理を行う。
　・Job/Queue
####Lazy Collection
　・Collection機能を拡張機能
　　PHPのgeneratorを利用してarrayをラッパーしたクラス。
　　必要に応じてメモリの使用量を減らすことができる。
####Eloquent Subquery Enhancements
　・Eloquentでサブクエリーを組み立てる際の拡張機能
####Laravel UI
　・フロントエンドのscafoldingがlaravel/uiパッケージ化。

###Laravel7の新機能
####Custom Eloquent Casts
　・Modelのキャスト
####Multiple Mail Driver
　・複数メールドライバ対応機能
####HTTP Client
　・Http Clientの実装。Guzzleのラッパー
####Laravel Sanctum
　・SPAのためのトークンベースの認証システム
　・APIトークンの生成
####Blade Component Tags & Improvements
　・Blade componentタグと改良
####Fluent String Operations
　・Fluent文字列操作ライブラリ

####Route Model Binding Improvements
　・Key Customization
　　・キーがid以外のカラムを使ったEloquentモデル解決
　・Automatic Scoping
　　・自動制約機能。一つの定義中に複数のEloquentモデルを暗黙的に結合する。

####Route Caching Speed Improvements
　・ルートキャッシュスピードの向上
####Query Time Casts
　・クエリ実行時のキャスト
####CORS Support
　・Laravel CORSパッケージの統合

####MySQL 8+ Database Queue Improvements
　・MySQL8以上でのデータベースキューの向上

####Artisan test Command
　・テスト実行にphpunitコマンドに加えtest Artisanコマンドを追加

####Markdown Mail Template Improvements
　・デフォルトMarkdownメールテンプレートはTailwind CSSカラーパレットを基盤としたよりモダンなデザインに一新されました。

####Stub Customization
　・Artisanコンソールのmakeコマンドは、コントローラ、マイグレーション、テストのような数多くのクラスを生成するために使われます。これらのクラスは皆さんの入力を元にして、「スタブ」ファイルへ値を埋め込み生成されます。

####Queue maxExceptions Configuration
　・ジョブを何度も再試行するように指定している場合、指定した回数の例外が発生したことをきっかけにしてその再試行を失敗として取り扱いたい場合のExceptionの追加

###Laravel8の新機能
　Laravel8は、Laravel7.xで行われた向上に加え、以降の変更で構成されています。Laravel Jetstreamの導入、モデルファクトリクラスの導入、マイグレーションの圧縮の導入、ジョブバッチの導入、レート制限の向上、キューの向上、ダイナミックBladeコンポーネントの導入、Tailwindペジネーションビューの導入、時間テストヘルパの導入、artisan serveの向上、イベントリスナの向上、ならびに多くのバグフィックスとユーザービリティの向上です

####Laravel Jetstream
・Laravelのために美しくデザインされたアプリケーションのscaffold

####Models Directory
　・デフォルトのLaravelアプリケーションのスケルトンにapp/Modelsディレクトリが含まれる。


####Model Factory Classes
　・Eloquentモデルファクトリは、クラスベースのファクトリとして完全に書き直され、ファーストクラスのリレーションシップをサポートするように改良されました。

####Migration Squashing
　・マイグレーションファイルを一つのSQLに圧縮する

####Job Batching
　・バッチジョブを簡単に実行し、バッチの実行が完了したときに何らかのアクションを実行できます。

####Improved Rate Limiting
　・Laravelのリクエストレート制限機能は、以前のリリースのthrottleミドルウェアAPIとの下位互換性を維持しながら、柔軟性とパワーが強化された。
 　・Laravel6で実装されたthrottleミドルウェアの向上
　
####Improved Maintenance Mode
　・以前のLaravelリリースではアプリケーションへのアクセスを許可するIPアドレスの「許可リスト」を使用して、php artisan downメンテナンスモード機能をバイパスできました。この機能は、より単純な「秘密」/トークンによる解決法導入により削除しました。

####Pre-Rendering The Maintenance Mode View
　・メンテナンスモードビューの事前レンダリング
　・コンポーネント更新中にエラーが発生する可能性があるため、事前に
　　メンテナンスページをレンダリングしておくことが可能。

####Closure Dispatch / Chain catch
　・新しいcatchメソッドを使用して、キューに投入されたクロージャが正常に完了しなかった場合に、キューの設定済みの再試行回数をすべて使い果たしたときに実行する、クロージャを引数へ渡せるようになりました。

####Dynamic Blade Components
　・Laravelに組み込まれているdynamic-componentコンポーネントを使用して、ランタイム値や変数に基づきコンポーネントをレンダリングできます。

####Event Listener Improvements
 ・クロージャベースのイベントリスナは、クロージャをEvent::listenメソッドへ渡すだけで登録できるようになりました。

####Time Testing Helpers
　・時間変更テスト時のヘルパ

####Artisan serve Improvements
　・Artisan serveコマンドは、ローカルの.envファイル内で環境変数の変更が検出されたとき、自動でリロードするように改善されました
####Tailwind Pagination Views
　・LaravelのペジネータはデフォルトでTailwind CSSフレームワークを使用するように変更しました。

####Routing Namespace Updates
　・以前のリリースのLaravelでは、RouteServiceProviderは$namespaceプロパティを持っていました。このプロパティの値は、コントローラのルート定義やactionヘルパ／URL::actionメソッドの呼び出しに、自動でプレフィックスを付加していました。
Laravel8.xでこのプロパティはデフォルトでnullです。これは、Laravelは自動的に名前空間のプレフィクスを付けなくなったことを意味します。そのため、新しいLaravel8.xアプリケーションでは、コントローラルートの定義は標準的なPHPで呼び出し可能な構文を使って定義する必要があります。