Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Laravelのサービスコンテナを知ろう
Search
takumin
April 25, 2024
0
1.2k
Laravelのサービスコンテナを知ろう
春和の候!若手エンジニアふんわりLT Night!
でのLT資料です。
takumin
April 25, 2024
Tweet
Share
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Practical Orchestrator
shlominoach
190
11k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.2k
Unsuck your backbone
ammeep
671
58k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Agile that works and the tools we love
rasmusluckow
331
21k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Transcript
Laravelのサービスコンテナを 知ろう
自己紹介 村上拓海(たくみん) @Ota_Rg_Blog 株式会社ROXX back check事業部開発 LaravelとNuxt.js 男子新体操やってます
サービスコンテナとは > Laravelサービスコンテナは、クラスの依存関係を管理し、依存注入を実行するための強力なツールです。 依存の注入は、本質的にこれを意味する派手なフレーズです。クラスの依存は、コンストラクターまたは場合 によっては「セッター」メソッドを介してクラスに「注入」されます。 要するに ・クラスの依存関係を管理できる箱 ・DIコンテナ
DI(Dependency Injection=依存性注入)とは 依存とは、あるオブジェクトの中で他のオブジェクトの機能を使うこと DI(Dependency Injection=依存性注入) とは、 他のオブジェクトを使用する時に、自身の中ではなく 外から設定してあげる事で、 よりスムーズなソース管理や処理の流れを実現する デザインパターンの事です。
依存関係がある例 MyClassの中でEmailクラスを作成している ・Emailではなく、Gmailを使うとMyClassを修正しない といけなく、柔軟性がない ・単体テストが書きづらい →使う側と使われる側が切り離せていない
依存関係がない例 MyClassの_constructでEmailを外部から注入して いる ・Gmailを使う時にMyClassを修正しなくて良く、 柔軟性がある ・外から設定するので、単体テストが書きやすい →使う側と使われる側が切り離せている
依存関係がないと何が嬉しいの? 使う側と使われる側を切り離すことができる ・疎結合になり、柔軟性が増す ・単体テストが書きやすくなる
サービスコンテナの主なメソッド app()->bind() ・サービスコンテナに登録する ・AppServiceProviderにかく app()->make() ・サービスコンテナに登録したものを使う
実際にどんな時に使うかを紹介 ・外部APIのライブラリ使う時 ・テストの時 ・環境ごとに実装を分けたい時
外部APIのライブラリ使う時 メリット ・依存関係を解決できる ・APIキーの設定を毎回しなくて良くなる
テストの時 メリット ・注入元を変えられるから、単体テストが書 きやすい
環境ごとに実装を分けたい時
まとめ ・サービスコンテナは、クラスの依存関係を管理できる箱 ・依存関係がないと、使う側と使われる側を切り離すことができる ・疎結合になり、柔軟性が増す ・単体テストが書きやすくなる
もっとDIについて知りたい方 なぜ依存を注入するのか DIの原理・原則とパター ン | Steven van Deursen, Mark Seemann,
須田智 之 |本 | 通販 | Amazon 2024/05/17発売 656ページ
ご清聴ありがとうございました