Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Laravel_メソッドインジェクション_0715
Search
Takayuki
July 15, 2018
Technology
270
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Laravel_メソッドインジェクション_0715
Takayuki
July 15, 2018
More Decks by Takayuki
See All by Takayuki
Build an MCP Server in Laravel to Enable “AI-Operated” Recruiting Tools(English)
bumptakayuki
0
59
Laravel Applications with DDD x Clean Architecture x Vibe Coding
bumptakayuki
1
130
Laravel × Clean Architecture
bumptakayuki
1
620
エンジニアのキャリア論
bumptakayuki
1
310
地方カンファレンス主催のススメ
bumptakayuki
1
280
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
2
1.4k
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
0
840
沖縄観光、名物を一挙紹介!
bumptakayuki
2
860
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
3.6k
Other Decks in Technology
See All in Technology
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
350
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
5
1.8k
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
30
17k
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
10
4.2k
AIエージェントの権限管理 3: Agentic RAG の Fine grained access control 編
ren8k
0
140
Minecraft JavaのMODをSwiftで作る
1mash0
0
180
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
150
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.4k
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
200
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
2.1k
あけおめLINE 傾向とその対策
nasa9084
0
180
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
180
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.4k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
First, design no harm
axbom
PRO
2
1.3k
エンジニアに許された特別な時間の終わり
watany
109
250k
Marketing to machines
jonoalderson
1
5.8k
Navigating Team Friction
lara
192
16k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
510
How to build a perfect <img>
jonoalderson
1
6k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
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 ͍ํ