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
Laravelのサービスコンテナを知ろう
Search
takumin
April 25, 2024
0
660
Laravelのサービスコンテナを知ろう
春和の候!若手エンジニアふんわりLT Night!
でのLT資料です。
takumin
April 25, 2024
Tweet
Share
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
167
49k
Producing Creativity
orderedlist
PRO
341
39k
What's new in Ruby 2.0
geeforr
342
31k
Adopting Sorbet at Scale
ufuk
73
9k
KATA
mclloyd
29
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
106
49k
Scaling GitHub
holman
458
140k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
Why Our Code Smells
bkeepers
PRO
334
57k
Ruby is Unlike a Banana
tanoku
96
11k
Optimising Largest Contentful Paint
csswizardry
31
2.9k
It's Worth the Effort
3n
183
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ページ
ご清聴ありがとうございました