Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Laravel8.xまでの大きな変更点を振り返る
Search
namizatork
May 29, 2021
Programming
0
500
Laravel8.xまでの大きな変更点を振り返る
namizatork
May 29, 2021
Tweet
Share
More Decks by namizatork
See All by namizatork
PHPのエラーを理解して適切なエラーハンドリングを学ぼう
namizatork
2
3.6k
もう細かいレビューは したくない、されたくない
namizatork
1
1.4k
PHPの静的解析 ついでにLarastan
namizatork
1
560
Livewireは魔法??コードリーディング してみた
namizatork
1
330
Laravelワカンネ(゚⊿゚)から「完全に理解した()」までステップアップ
namizatork
1
1.1k
Laravelの「Hello World」を 表示するまでの処理を追ってみた
namizatork
0
1.4k
Laravel Hands-on
namizatork
0
350
SPA/PWA/AMPってなに?
namizatork
1
17k
Other Decks in Programming
See All in Programming
A2A プロトコルを試してみる
azukiazusa1
2
810
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
800
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
1
310
実践ArchUnit ~実例による検証パターンの紹介~
ogiwarat
2
280
データベースコネクションプール(DBCP)の変遷と理解
fujikawa8
1
270
イベントストーミングから始めるドメイン駆動設計
jgeem
4
870
赤裸々に公開。 TSKaigiのオフシーズン
takezoux2
0
140
レガシーシステムの機能調査・開発におけるAI利活用
takuya_ohtonari
0
610
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
550
生成AIで日々のエラー調査を進めたい
yuyaabo
0
620
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
300
ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化
knih
11
1.9k
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Making Projects Easy
brettharned
116
6.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Transcript
www.bengo4.com Laravel8.xまでの 大きな変更点を振り返る 2021.05.29 namizato
はじめに 2
Bengo4.com, Inc. 3 「大きな変更点」とタイトルを付けていますが、主語がデカすぎました() パフォーマンスの向上とかよりも個人的に気になった変更点や、 実装している上でこれは便利になったなーと感じた追加機能などについてお話しします。 ノリでタイトル決めるのだめ絶対
4 4 並里 辰也(ナミザト タツヤ) 自己紹介 沖縄PHPカンファレンス2021 実行委員(広報) 弁護士ドットコム株式会社 在籍そろそろ1年
Laravelが好きでたまにQiitaに投稿してます @namizatork
Bengo4.com, Inc. 弁護士ドットコム というサービス • 一般市民と弁護士を結びつ け、お悩み解決を目指す • 2005年サービス開始 •
約900万セッション/ 月 • 約300件の法律相談/ 日 5
Bengo4.com, Inc. 目次 • Laravelが人気の訳 • セマンティック・バージョニング • PHP6.xでの追加・変更点 •
PHP7.xでの追加・変更点 • PHP8.xでの追加・変更点 6
Laravelが人気な訳 7 今更感がありますが、あえて説明しておきます
Bengo4.com, Inc. Laravelが人気の訳 • 日本語含めてドキュメントが豊富 • MVCが標準サポートされているので、開発者によって実装が左右されにくい • XSS/CSRF/SQLインジェクションなどのセキュリティ対応がされている •
柔軟な設計が可能( DDD/クリーンアーキテクチャなど簡単に導入ができる) • ORM(Eloquent)が標準サポートされているので、柔軟なデータ操作が可能 • PHPのコードでDBを管理できるマイグレーションに標準対応 • クラスの依存関係を管理するサービスコンテナ • クラスインスタンス化せずとも staticメソッドの様に呼び出すことができる Facade • Controllerの前後にフィルタリングを設定できるミドルウェア • etc.. 8
セマンティック・ バージョニング 9
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
Laravel6.xの 追加・変更点 11
Bengo4.com, Inc. 文字列と配列のヘルパの 変更 str_ と array_ ヘルパが使用できな く なりました(別パッケージへ移行され
ました) Laravel5.8からアップグレードした時 にこの辺りで引っかかることが多々あ りました。 12 これまで 6.x
Bengo4.com, Inc. 認証機能のUIが分離された laravel6.xから認証機能が laravel/ui という別パッケージで管 理される様になりました。 これによって5.xまでは標準で組み込 まれていたBootstrapとVueがデ フォルトから外され、スカフォールドを
任意のFWから選ぶことができる様に なりました。 13 これまで 6.x
Bengo4.com, Inc. Laravel6.xその他追加・変更点 • Lazy Collection • ジョブミドルウェア • Eloquentサブクエリの向上
• 認可レスポンスの向上 • etc... 14
Laravel7.xの 追加・変更点 15
Bengo4.com, Inc. Guzzleをラップした HTTP Client これまでは GuzzleHttpClient を 使用する必要がありましたが、 Laravel7.x
から Guzzle をラップした HTTP Client が標準で搭載される 様になりました。 これにより、Guzzleの長いコードを書 かなくて済むようになりました。 16 これまで 7.x
Bengo4.com, Inc. Sanctumの導入 SPAに対しての認証機能を容易に提 供してくれるLaravelのパッケージで す。(元々は AirLock という名前だっ た) Token
を利用した API Tokens と Cookie を利用したSPA Authentication の2つの機能があ ります 17
Bengo4.com, Inc. ViewComponentの導入 Blade のコンポーネントクラスやタグ が利用できるようになりました。 Blade(ビュー)とロジックの責務が分 けれる様になり、さらにコンポーネント 化により共通化もできる様になった。 18
Bengo4.com, Inc. Laravel7.xその他追加・変更点 • ルートキャッシュスピードの向上 • カスタムEloquentキャスト • ルートモデル結合の向上 •
etc... 19
Laravel8.xの 追加・変更点 20
Bengo4.com, Inc. マイグレーションの圧縮 プロジェクトが大規模になるにつれて 増えていくマイグレーションファイルを 圧縮することができます。 やり方は簡単で右のコマンドを入力 するだけで database/schema に
書き込まれます。 21 既存のマイグレーションを削除する option
Bengo4.com, Inc. Jetstreamの導入 ログイン、ユーザー登録、メール認 証、二要素認証、セッション管理、 Laravel SanctumによるのAPIサ ポート、およびオプションのチーム管 理が用意されている。 Tailwind
CSSを使用していて、 Livewire か Inertia のどちらかのス カフォールドを選択できます。 22
Bengo4.com, Inc. Livewireの導入 Bladeを利用していればJavaScript を書かずにPHPだけでSPAを実装で きる様にしたパッケージ 開発者曰く、Laravelを知っている人 なら誰でも書けるので学習コストが低 いらしい() 23
Bengo4.com, Inc. Laravel8.xその他追加・変更点 • モデルファクトリクラス • Modelsディレクトリをデフォルト化 • ジョブバッチ •
レート制限の向上 • イベントリスナの向上 • タイムトラベル(時間操作テスター) • etc... 24
ご清聴ありがとう ございました。 25