Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laravel8.xまでの大きな変更点を振り返る

 Laravel8.xまでの大きな変更点を振り返る

1998b7a88550e8c58f7efb17d7b72a29?s=128

namizatork

May 29, 2021
Tweet

Transcript

  1. www.bengo4.com Laravel8.xまでの 大きな変更点を振り返る 2021.05.29 namizato

  2. はじめに 2

  3. Bengo4.com, Inc. 3 「大きな変更点」とタイトルを付けていますが、主語がデカすぎました() パフォーマンスの向上とかよりも個人的に気になった変更点や、 実装している上でこれは便利になったなーと感じた追加機能などについてお話しします。 ノリでタイトル決めるのだめ絶対

  4. 4 4 並里 辰也(ナミザト タツヤ) 自己紹介 沖縄PHPカンファレンス2021 実行委員(広報) 弁護士ドットコム株式会社 在籍そろそろ1年

    Laravelが好きでたまにQiitaに投稿してます @namizatork
  5. Bengo4.com, Inc. 弁護士ドットコム というサービス • 一般市民と弁護士を結びつ け、お悩み解決を目指す • 2005年サービス開始 •

    約900万セッション/ 月 • 約300件の法律相談/ 日 5
  6. Bengo4.com, Inc. 目次 • Laravelが人気の訳 • セマンティック・バージョニング • PHP6.xでの追加・変更点 •

    PHP7.xでの追加・変更点 • PHP8.xでの追加・変更点 6
  7. Laravelが人気な訳 7 今更感がありますが、あえて説明しておきます

  8. Bengo4.com, Inc. Laravelが人気の訳 • 日本語含めてドキュメントが豊富 • MVCが標準サポートされているので、開発者によって実装が左右されにくい • XSS/CSRF/SQLインジェクションなどのセキュリティ対応がされている •

    柔軟な設計が可能( DDD/クリーンアーキテクチャなど簡単に導入ができる) • ORM(Eloquent)が標準サポートされているので、柔軟なデータ操作が可能 • PHPのコードでDBを管理できるマイグレーションに標準対応 • クラスの依存関係を管理するサービスコンテナ • クラスインスタンス化せずとも staticメソッドの様に呼び出すことができる Facade • Controllerの前後にフィルタリングを設定できるミドルウェア • etc.. 8
  9. セマンティック・ バージョニング 9

  10. Bengo4.com, Inc. セマンティック・バージョニング 2021年5月現在最新の LTS は Laravel6.x(2021年9月に次のLTS最新9.xリリース予定) このリリースを機に Laravel では

    セマンティック・バージョニング が採用されました。 これまでの Laravel(5.x) では 5.1 > 5.2 > 5.3 と上がっていたのに対して、 6 > 7 > 8 の様にアップデートされる様になりました。 つまり 6.x は実質 5.9(5.xの最新が5.8のため) の様な扱い 10
  11. Laravel6.xの 追加・変更点 11

  12. Bengo4.com, Inc. 文字列と配列のヘルパの 変更 str_ と array_ ヘルパが使用できな く なりました(別パッケージへ移行され

    ました) Laravel5.8からアップグレードした時 にこの辺りで引っかかることが多々あ りました。 12 これまで 6.x
  13. Bengo4.com, Inc. 認証機能のUIが分離された laravel6.xから認証機能が laravel/ui という別パッケージで管 理される様になりました。 これによって5.xまでは標準で組み込 まれていたBootstrapとVueがデ フォルトから外され、スカフォールドを

    任意のFWから選ぶことができる様に なりました。 13 これまで 6.x
  14. Bengo4.com, Inc. Laravel6.xその他追加・変更点 • Lazy Collection • ジョブミドルウェア • Eloquentサブクエリの向上

    • 認可レスポンスの向上 • etc... 14
  15. Laravel7.xの 追加・変更点 15

  16. Bengo4.com, Inc. Guzzleをラップした HTTP Client これまでは GuzzleHttpClient を 使用する必要がありましたが、 Laravel7.x

    から Guzzle をラップした HTTP Client が標準で搭載される 様になりました。 これにより、Guzzleの長いコードを書 かなくて済むようになりました。 16 これまで 7.x
  17. Bengo4.com, Inc. Sanctumの導入 SPAに対しての認証機能を容易に提 供してくれるLaravelのパッケージで す。(元々は AirLock という名前だっ た) Token

    を利用した API Tokens と Cookie を利用したSPA Authentication の2つの機能があ ります 17
  18. Bengo4.com, Inc. ViewComponentの導入 Blade のコンポーネントクラスやタグ が利用できるようになりました。 Blade(ビュー)とロジックの責務が分 けれる様になり、さらにコンポーネント 化により共通化もできる様になった。 18

  19. Bengo4.com, Inc. Laravel7.xその他追加・変更点 • ルートキャッシュスピードの向上 • カスタムEloquentキャスト • ルートモデル結合の向上 •

    etc... 19
  20. Laravel8.xの 追加・変更点 20

  21. Bengo4.com, Inc. マイグレーションの圧縮 プロジェクトが大規模になるにつれて 増えていくマイグレーションファイルを 圧縮することができます。 やり方は簡単で右のコマンドを入力 するだけで database/schema に

    書き込まれます。 21 既存のマイグレーションを削除する option
  22. Bengo4.com, Inc. Jetstreamの導入 ログイン、ユーザー登録、メール認 証、二要素認証、セッション管理、 Laravel SanctumによるのAPIサ ポート、およびオプションのチーム管 理が用意されている。 Tailwind

    CSSを使用していて、 Livewire か Inertia のどちらかのス カフォールドを選択できます。 22
  23. Bengo4.com, Inc. Livewireの導入 Bladeを利用していればJavaScript を書かずにPHPだけでSPAを実装で きる様にしたパッケージ 開発者曰く、Laravelを知っている人 なら誰でも書けるので学習コストが低 いらしい() 23

  24. Bengo4.com, Inc. Laravel8.xその他追加・変更点 • モデルファクトリクラス • Modelsディレクトリをデフォルト化 • ジョブバッチ •

    レート制限の向上 • イベントリスナの向上 • タイムトラベル(時間操作テスター) • etc... 24
  25. ご清聴ありがとう ございました。 25