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_メソッドインジェクション_0715
Search
Takayuki
July 15, 2018
Technology
1
240
Laravel_メソッドインジェクション_0715
Takayuki
July 15, 2018
Tweet
Share
More Decks by Takayuki
See All by Takayuki
Laravel × Clean Architecture
bumptakayuki
0
330
エンジニアのキャリア論
bumptakayuki
0
200
地方カンファレンス主催のススメ
bumptakayuki
1
210
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
2
1.1k
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
0
680
沖縄観光、名物を一挙紹介!
bumptakayuki
2
670
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
2.8k
flutterでイベントアプリを作ってみた
bumptakayuki
0
160
オフショア開発の辛みと学んだ事
bumptakayuki
0
400
Other Decks in Technology
See All in Technology
DroidKaigi 2025 Androidエンジニアとしてのキャリア
mhidaka
2
310
Automating Web Accessibility Testing with AI Agents
maminami373
0
1.3k
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
21
11k
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
150
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
10k
Language Update: Java
skrb
2
300
2025年夏 コーディングエージェントを統べる者
nwiizo
0
170
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
430
La gouvernance territoriale des données grâce à la plateforme Terreze
bluehats
0
180
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
3
430
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
170
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
12
4.8k
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
96
6.2k
What's in a price? How to price your products and services
michaelherold
246
12k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Unsuck your backbone
ammeep
671
58k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
It's Worth the Effort
3n
187
28k
Transcript
Laravel method Injection Laravel method Injection
2 method Injectionͱ 3 ͍ํ Agenda 1 Laravelͷಛ
3 ࣗݾհ ◆໊લ ླ ೭(Suzuki Takayuki) ◆ࣗݾհ ɾ1990ɺਆಸݝੜ·Εɻ ɾࣾձਓʹͳ͔ͬͯΒɺϓϩάϥϛϯάΛ࢝ΊΔɻ ɾ2015ʹϑϧεϐʔυʹೖࣾ͠ɺ2017ʹϑϦʔϥϯεΛ
ͬͨޙʹ201711݄ʹԭೄͰىۀɻ ◆झຯ ίεϓϨɺԻָϥΠϒɺϚϥιϯେձʹग़Δɺٿ؍ઓ ◆εΩϧ ɾPHP, Symfony2,CakePHP3,Laravel5, ɾJavaScript, backbone.js,Angular4
4
5 ձࣾհ ◆ձ໊ࣾ גࣜձࣾRe:Build ◆ॅॴ ԭೄݝԭೄࢢதԝ̍ஸ̍̒−̕ ◆ࣄۀ༰ ɾۀʹ͓͍ͯͷϑʔυϩεΛແ͘͢ ࣗࣾWEBαʔϏεͷاըɾ։ൃɻ ɾडୗ։ൃ
◆ΤϯδχΞͷಇ͖ํ ϦϞʔτϫʔΫՄೳͳࣗ༝ͳಇ͖ํΛਪͯ͠·͢ʂ
1 Laravelͷಛ
7 1 Laravelͷಛ ɾۄͶ͗ͷΑ͏ͳߏͰϦΫΤετͱ Ϩεϙϯεͷؒʹ༷ʑͳॲཧΛڬΈࠐ Έ͍͢ɻ ɾόϦσʔγϣϯͳͲ୯ҰͷΤϯςΟ ςΟʹґଘ͢ΔͷͰͳ͘ɺForm୯ ҐͰ࣮Ͱ͖Δɻ MiddleWareͷྫ
ೝ ূ ν Σ ο Ϋɺ ό Ϧ σ ʔ γ ϣ ϯɺ CSRFτʔΫϯͷνΣοΫ
8 ϥΠϒϥϦ͕ॆ࣮
LaravelҎ֎ͷPHPϑϨʔϜϫʔΫݮগʹ͋ΔΑ͏Ͱ͢ɻ͜͜·Ͱຊࠃ͚ͩΛݟ͖ͯ·ͨ͠ɻ࣍ʹւ֎ͷݱঢ়ΛݟͯΈ·͢ɻ ຊͷPHPϑϨʔϜϫʔΫͷಈ
ຊͷPHPϑϨʔϜϫʔΫͷಈ ԭೄ͕ߴ͍ʂʂʂʂ
ຊͱશ͘ঢ়گ͕ҧ͍·͢ɻҰ൪ݕࡧ͞Ε͍ͯΔʢΘΕ͍ͯΔʣͷ੨৭ͷʮLaravelʯɻLaravel্͚͕ͩঢ͠ɺͦͷଞ͕ݮগ ͍ͯ͠Δͱ͍͏ʹ͓͍ͯຊͱಉ͡Ͱ͕͢ɺݱࡏLaravel͕Ұ൪ओྲྀͱͳ͍ͬͯΔ͕ຊͱશ͘ҧ͍·͢ɻຊ Εͯւ֎ͷྲྀΕʹଈ͍ͯ͘͠Ͱ͠ΐ͏͔Βɺ͜ͷ··ʮCakePHPʯ͕ݮগ͠ɺʮLavelʯ͕ओྲྀʹͳ͍͖ͬͯͦ͏Ͱ͢ɻ ੈքͷPHPϑϨʔϜϫʔΫͷಈ ʙੈքͰ͢ͰʹʮLaravelʯ͕ओྲྀʙ
3େϑϨʔϜϫʔΫͷΠϝʔδ(एׯɺओ؍ؚΉ) CakePHP Laravel Symfony ૣ͍ ͍ ͍ ߴ͍ ։ൃ ֶशίετ
2 method Injectionͱ
1 4 DI (Dependency Injectionͷུޠ)ͱ ίϯϙʔωϯτؒͷґଘؔΛϓϩάϥϜͷιʔείʔυ͔Βഉআ͠ɺ֎෦ͷઃఆϑΝ ΠϧͳͲͰೖͰ͖ΔΑ͏ʹ͢ΔιϑτΣΞύλʔϯͰ͋Δɻӳޠͷ಄จࣈ͔ΒDIͱ ུ͞ΕΔɻ !ΫϥεͳͲͰݻఆԽ͞Εͨͷ͕͋ΔͱԿ͕ͳͷ? ɾॊೈੑ͕ͳ͍
ɾςετ͠ʹ͍͘ !ղܾํ๏ ʮґଘ͍ͯ͠Δ෦Λ֎͔Βೖ͢Δʯ
1 5 DIʹ͓͚Δʮґଘੑʯͱʮೖʯͷҙຯ ɾґଘੑ (େࡶʹ)ͱ͋ΔΫϥεʹɺݻఆͷఆɺมɺΠϯελϯε͕ೖͬͪΌ͍ͬͯΔঢ়ଶ ͭ·ΓͦͷΫϥεɺͦͷఆɺมɺΠϯελϯεʹґଘ͍ͯ͠Δ ɾೖ ͦͷΫϥεͷ֎͔ΒఆɺมɺΠϯελϯεΛ͋ΔΫϥεʹͿͪ͜Ή͜ͱ ҙ) Ϋϥε͚ͩʹݶΒͳ͍ͱ͍͏͋Δɻ͚Ͳɺ΄ͱΜͲͷ߹ΫϥεʹͳΔͷ
ͰɺҎԼΫϥεʹ͢Δ
1 6 DIͱ ɾͭ·ΓɺԿ͕Կʹґଘ͍ͯ͠Δ? ͱ͋ΔΫϥε͕ɺݻఆͨ͠ଞͷ(ఆɺมɺΫϥεͳͲ)ʹґଘ͍ͯ͠Δ ɾͲ͏͍ͨ͠ͷ? ґଘੑΛͳͨ͘͢Ίʹɺಈతʹಈ࡞Λೖ͠Α͏ͥ! ͬͯ͜ͱ ͭ·Γɺ͋ΔΫϥεͷܾΊଧͪఆɺมɺΠϯελϯεΛഉআͯ͠ɺ֎͔Βೖ͢ Δ͜ͱͰɺಈతʹಈ࡞Λม͑ΒΕΔΑ͏ʹ͢Δ
ɾґଘ͍ͯ͠ΔͱɺԿ͕ݏͳͷ? ֎͔Βಈతʹಈ࡞ΛมߋͰ͖ͳ͍ͷͰɺςετͮ͠Β͍ ܾΊଧͪͳͷͰɺॊೈੑ͕ͳ͘ΧελϚΠζ͠ʹ͍͘
1 7 DIͱ ɾ۩ମతʹͲ͏ࠔΔͷ? ͋ΔΫϥε͚ͩςετ͍ͨ͠ͷʹதʹผͷΫϥε͕ೖ͍ͬͯΔͱςετ͠ʹ͍͘ ςετʹ͕͔͔࣌ؒΔϝιου͕தʹ͋ͬͯςετऴྃʹ͕͔͔࣌ؒΔ ɾͰɺ݁ہͲ͏͠Ζͬͯͷ? ҾͰɺΫϥεมΛ֎͔Βड͚औΕΔΑ͏ʹ͢Δ
1 8 Ϣχοτςετͷྫ Repository Service Controller router
1 9 Ϣχοτςετͷྫ Repository Service Controller router ϞοΫʹ͢Γସ͑Δ
2 0 DIͱ ɾंͰྫ͑ͯΈΔ ʮґଘੑͷߴ͍ंɺಛఆͷϝʔ ΧʔͷύʔπͰݻఆ͞ΕͪΌͬͯ ͍ͯɺΧελϚΠζͰ͖ͳ͍ंʯ ͱ͍͏͜ͱʹͳΔ
2 1 DIͷϝϦοτɾσϝϦοτ ϝϦοτ σϝϦοτ ɾιϑτΤΞͷ֊Λ͖Ε͍ʹͨ͠ઃܭ ͕༰қʹͳΔ ɾίʔυ͕؆ૉʹͳΓɺ։ൃظ͕ؒ͘ͳΔ ɾςετ͕༰қʹͳΓɺʮςετɾϑΝʔετʯ ʹΑΔ։ൃελΠϧΛऔΓ͘͢ͳΔ
ɾ͡Ίʹ͕͔͔Δ߹͕ଟ͍ɻ ɾΫϥεϑΝΠϧ͕ࢁͰ͖Δ ɾϓϩάϥϜͷ࣮ߦεϐʔυ͕͘ͳΔՄೳੑ ͕͋Δ
3 ͍ํ
2 3 ΠϯδΣΫγϣϯͷछྨ ɾίϯετϥΫλΠϯδΣΫγϣϯ - αʔϏεͳͲೖ ɾϝιουΠϯδΣΫγϣϯ - όϦσʔγϣϯͳͲ
2 4 ίϯετϥΫλΠϯδΣΫγϣϯͷྫ
2 5 ͍ํ
2 6 ͍ํ
2 7 ͜ͷ෦ͰόϦσʔγϣ ϯ͕࣮ߦ͞ΕΔ
2 8 ͍ํ
2 9 ͍ํ