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
Takayuki
September 01, 2019
Programming
650
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Laravelって実際どうなの?
Laravelって実際どうなの?
Takayuki
September 01, 2019
More Decks by Takayuki
See All by Takayuki
Build an MCP Server in Laravel to Enable “AI-Operated” Recruiting Tools(English)
bumptakayuki
0
41
Laravel Applications with DDD x Clean Architecture x Vibe Coding
bumptakayuki
1
130
Laravel × Clean Architecture
bumptakayuki
1
570
エンジニアのキャリア論
bumptakayuki
1
300
地方カンファレンス主催のススメ
bumptakayuki
1
270
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
2
1.4k
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
0
810
沖縄観光、名物を一挙紹介!
bumptakayuki
2
810
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
3.5k
Other Decks in Programming
See All in Programming
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
490
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
490
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
370
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
170
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
140
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
120
SREは、MCPとSRE Agentをこう使え!
kazumax55
0
150
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
450
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
850
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
360
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
390
初めてのKubernetes 本番運用でハマった話
oku053
0
130
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.8k
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Building Adaptive Systems
keathley
44
3.1k
From π to Pie charts
rasagy
0
230
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Color Theory Basics | Prateek | Gurzu
gurzu
0
390
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
320
Transcript
RailsͱLaravelͬͯҧ͍Ͳ͏ͳͷʁ ~ جຊػೳͷઆ໌͔ΒࣗࣾαʔϏεͰͷ։ൃಋೖࣄྫ ~ Laravelฤ
3.PHPίϛϡχςΟͷݱঢ় Agenda 2.PHPͷྺ࢙ 1.ࣗݾհɾձࣾհ 4.PHPΛֶͿϝϦοτ 7.LaravelͷҊ݅ࣄ 6.Laravelॳֶऀʹ͍͍ͯΔͷ͔ʁ 5.Laravelͷ֓ཁɾϝϦοτ
ࣗݾհɾձࣾհ
1.ࣗݾհ ◆໊લ ླ ೭(Suzuki Takayuki) ※ಉಉ໊ଟͯ͘ࠔͬͯ·͢ɻɻɻ ◆ࣗݾհ ɾ1990ɺਆಸݝੜ·Εɻ ɾࣾձਓʹͳ͔ͬͯΒɺϓϩάϥϛϯάΛ࢝ΊΔɻ ɾ2015ʹϑϧεϐʔυʹೖࣾ͠ɺ2017ʹಠཱɻ
ɾݱࡏɺडୗ։ൃΛΓͭͭɺࣗࣾWebαʔϏεΛ։ൃதɻ ◆झຯ ίεϓϨɺԻָϥΠϒɺϚϥιϯେձʹग़Δɺٿ؍ઓ ◆εΩϧ PHP,Symfony2,CakePHP3,Laravel5, JavaScript,backbone.js,Angular.js,Nuxt.js,
Copyright Re:Build.inc All Rights Reserved. 1.ձࣾհ ◆ձ໊ࣾ גࣜձࣾRe:Build ◆ॅॴ ԭೄݝԭೄࢢதԝ̍ஸ̍̒−̕
◆ࣄۀ༰ ɾࣗࣾWEBαʔϏεͷاըɾ։ൃɻ ɾडୗ։ൃ ◆ࣾһ 6໊ ◆ΤϯδχΞͷಇ͖ํ ϦϞʔτϫʔΫՄೳͳࣗ༝ͳಇ͖ํΛਪͯ͠·͢ʂ
2013/04 ৽ଔͰ౦ژͷITϕϯνϟʔاۀʹ γεςϜΤϯδχΞͱͯ͠ೖࣾ 2015/07 ౦ژͷ্اۀͰWebΤϯδχΞ ͱͯ͠ೖࣾ ܦྺ 2015/07 ϑϦʔϥϯεΤϯδχΞͱͯ͠ ಠཱ
2017/11 ԭೄͰγεςϜ։ൃձࣾΛىۀ 2019/08 ౦ژͱԭೄͷاۀ༷͔Βͷ։ൃҊ݅Λ͚͍ͯΔɻ
ܦྺ·ͱΊ 4&4 4*FS 8FCܥࣗࣾ։ൃ ϑϦʔϥϯεΤϯδχΞ ىۀ डୗ։ൃ ελʔτΞοϓ ϓϩάϥϛϯάεΫʔϧͷߨࢣ
ͳͲɻ෯͘ۀΛ͖ͯ͠·ͨ͠ɻ
8 ࣗࣾWebαʔϏεͷ։ൃ ɾαʔϏε໊ Tadoru https://tadoru.work/ ɾγεςϜ֓ཁ ΤϯδχΞಛԽܕͷ ϦϑΝϥϧ Ϋϥυιʔγϯά
1)1ͷྺ࢙
PHP1 PHP5.3 PHP5.6 PHP7 1994 ʹ Rasmus Lerdorf ͕ΦϯϥΠϯ Ͱެ։͍ͯ͠Δܦྺ
ॻͷΞΫηεཤྺΛ ௐΔͨΊʹΘΕ ͍ͯ·͕ͨ͠ɺ ൴ ͦͷεΫϦϓτ܈Λ ʮPersonal Home Page Toolsʯͱ໊ ͚·ͨ͠ɻ ɾ໊લۭؒͳͲ͑ ΔΑ͏ʹͳͬͯɺͬ ͱαʔόαΠυͰ։ൃ ͘͢͠ͳͬͨɻ ɾ໊લۭؒͷαϙʔ τɺ ੩తԆଋറɺ gotoԋࢉࢠɺΫϩʔδϟɺ PHPΞʔΧΠϒ (phar)ɺ ॥ࢀরʹର͢ΔΨϕʔ δίϨΫγϣϯ ఆࣜɺՄมҾؔ ɺҾͷల։ԋࢉࢠ (...)ɺྦྷԋࢉࢠ(**)ɺ ఆͱؔʹର͢Δ useจɺରܕσόο ΨphpdbgΛSAPIϞ δϡʔϧͱͯ͠όϯυ ϧɺͦͷଞࡉ͔ͳվળɻ ɾPHP5ܥͱPHP7ܥͷ 2ഒҎ্ߴʹ ͳͬͨ ɾnull߹ମԋࢉࢠ??ɺ ؔͷΓͷએݴߏ จ[16]ɺεΧϥʔܕͷ λΠϓώϯςΟϯάɺ Ӊધԋࢉࢠ<=> PHPͷྺ࢙ 1995-06-08 2009-06-30 2014-08-28 2015-12-03
PHPͷྺ࢙ https://serversenshi.com/php5-php7/ άϥϑwordpress4.1.1্Ͱ PHP5.3~PHP7·ͰΛಈ͔ͨ࣌͠ͷࠩͰɺ ͕େ͖͍΄Ͳߴͱݴ͑·͢ɻ ݟ͔ͯΔ௨ΓɺࠩྺવͰPHP5ͷࠒʹ ൺɺPHP7͕֨ஈʹ͘ͳͬͨ
୲ऀ͕͍ͳ͘ͳͬͨಠࣗϑϨʔϜϫʔΫʹΑΓٕज़తෛ࠴ υΩϡϝϯτ͕ͳ͍ͱϑϨʔϜϫʔΫͷ༷͕ଐਓԽ͠ ͯ͠·͏ɻ ಠࣗϑϨʔϜϫʔΫΛ࡞ͬͨ୲ऀ͕ࣙΊͯ͠·͏ͱϝ ϯςφϯε͕ࠔʹͳΔɻ ੬ऑੑͷΞοϓσʔτΛࣗͰΒͳ͚Ε͍͚ͳ͍ɻ PHPͷҋͷྺ࢙
DPEFJHOJUFSʹΑΔεύήςΟίʔυ ܰྔϑϨʔϜϫʔΫ ֶशίετ͕͍͕ɺϧʔϧ͕΄ͱΜͲແ͍ ୭͔͕͔ͬ͠ΓϧʔϧΛܾΊͳ͍ͱɺΈΜͳ͕֤ʑ ͷॻ͖ํͰॻ͘ͷͰεύήςΟʹͳΓ͕ͪɻ ٕज़తෛ࠴ʹͳΓ͕ͪ
PHPͷҋͷྺ࢙
1)1ίϛϡχςΟͷݱঢ়
1)1ίϛϡχςΟͷݱঢ় - PHPΧϯϑΝϨϯε͚ͩͰɺ6ΧॴͰ։ ࠵͞Ε͍ͯΔ - ϑϨʔϜϫʔΫ͕ଟ͍ɺPHPࣗମͷί ϛϡχςΟ͕ଟ͍ - ओ؍͕ͩɺॿ͚߹͍ͷจԽ͕͋Δͱࢥ͏ɻ ౦ژ
Ԭ ԭೄ ւಓ ઋ େࡕ
1)1ίϛϡχςΟͷݱঢ় ࣗࣗPHPΧϯϑΝϨϯεԭೄͷ࣮ߦҕһΛ͍ͬͯ·͢ʂ 200ਓنͰ10/12ʹ։࠵༧ఆʂ εϐʔΧʔຊશࠃ͔ΒPHPerͷํʹొஃ͖ͯ͠·͢ʂ ւ֎͔Βొஃ͖·͢ʂ
1)1ίϛϡχςΟͷݱঢ় ຊશࠃͷΧϯϑΝ ϨϯεӡӦάϧʔϓͰ αϙʔτମ੍͕ॆ࣮ ͍ͯ͠Δ
1)1ίϛϡχςΟͷݱঢ় Slackίϛϡχ ςΟ׆ൃʂ
1)1ίϛϡχςΟͷݱঢ়
1)1ΛֶͿϝϦοτ
- PHPશମͰݴ͏ͱٻਓίϛϡχςΟ͕ͱͯେ͖͍ - ํͰಇ͘ͳΒPHP͕ٻਓଟΊ - ํͰLaravelগͳ͍ - ϑϨʔϜϫʔΫͷબࢶ͕ଟ͍ɺ৽ँ͕ྑ͍ɻྑ͍PHP ϑϨʔϜϫʔΫ͕ग़ΕɺΈΜͳͦͬͪʹҠΔɻ 1)1ΛֶͿϝϦοτ
-BSBWFMͷ֓ཁɾϝϦοτ
Laravelͱ LaravelʢϥϥϕϧʣɺϑϧελοΫͳPHPϑ ϨʔϜϫʔΫͰɺϧʔςΟϯάɺίϯτϩʔϥɺ ϏϡʔɺORMͳͲجຊతͳػೳΛඋ͑ɺ͞Βʹ ۙతͳWebΞϓϦͰ׆༻͞ΕΔδϣϒΩϡʔ WebετϨʔδͳͲੵۃతʹ౷߹͍ͯ͠ Δɻ MITϥΠηϯεͷԼͰϦϦʔε͞Ε͓ͯΓɺͦͷ ιʔείʔυGitHubʹϗεςΟϯά͞Ε͍ͯ Δɻ
https://qiita.com/torisankanasan/items/e7fb97e209d770970800
Laravelͷಛ ɾίʔυ͕ಡΈ͘͢ɺॻ͖͍͢ ɾֶशίετ͕ൺֱత͍ ɾڧྗͳϧʔςΟϯάϑΟϧλʔ ɾॊೈͳΦʔτϩʔμʔ ɾ؆୯ͳϖʔδωʔγϣϯ
2 5 ϥΠϒϥϦ͕ॆ࣮
LaravelҎ֎ͷPHPϑϨʔϜϫʔΫݮগʹ͋ΔΑ͏Ͱ͢ɻ࣍ʹւ֎ͷݱঢ়ΛݟͯΈ·͢ɻ ຊͷPHPϑϨʔϜϫʔΫͷಈ
ຊΑΓલ͔ΒLaravelͷਓؾ͕ग़͍ͯΔ ੈքͷPHPϑϨʔϜϫʔΫͷಈ
3େϑϨʔϜϫʔΫͷΠϝʔδ(एׯɺओ؍ؚΉ) CakePHP Laravel Symfony ૣ͍ ͍ ͍ ߴ͍ ։ൃ ֶशίετ
ϑΝαʔυύλʔϯɺ Φϒβʔόύλʔϯͳ Ͳɻ ۄͶ͗ͷΑ͏ͳߏͰϦΫΤ ετͱ Ϩεϙϯεͷؒʹ༷ʑ ͳॲཧΛڬΈࠐ Έ͍͢ɻ ɾ όϦσʔγϣϯͳͲ୯Ұͷ
ΤϯςΟ ςΟʹґଘ͢ΔͷͰ ͳ͘ɺForm ୯ ҐͰ࣮Ͱ ͖Δɻ ίϯϙʔωϯτؒͷґଘؔ ΛϓϩάϥϜͷιʔείʔυ ͔Βഉআ͠ɺ֎෦ͷઃఆϑΝ ΠϧͳͲͰೖͰ͖ΔΑ͏ʹ ͢Δɻ σβΠϯύλʔϯΛ ๛ʹऔΓೖΕ͍ͯ Δ DI͕Ͱ͖Δ͜ͱʹΑΓɺ ૄ݁߹ͰUnitςετ͕ Γ͍͢ ϝϦοτɾಛ ۄͶ͗ߏʹͳ͍ͬͯ Δ 2 ʙϝϦοτʙ 1 3
σβΠϯύλʔϯΛ๛ʹऔΓೖΕ͍ͯΔ ObserverύλʔϯʢΦϒβʔόʔɾύλʔϯ)ͱʁ ৼΔ͍ʹؔ͢ΔσβΠϯύλʔϯख๏ͷҰͭͰɺঢ়ଶมԽΛؔ࿈ΦϒδΣ Ϋτʹ௨͠ɺ ਵ͢ΔॲཧΛߦ͏ؔΛங͘ࣄͰɺ֤ΦϒδΣΫτͷґଘੑΛΓ͠ɺ ࠶ར༻ੑΛߴΊΔॲཧϞσϧͰ͢ɻ https://www.ritolab.com/entry/138
σβΠϯύλʔϯΛ๛ʹऔΓೖΕ͍ͯΔ https://www.ritolab.com/entry/138
ۄͶ͗ߏʹͳ͍ͬͯΔ ɾۄͶ͗ͷΑ͏ͳߏͰϦΫΤετͱ Ϩεϙϯεͷؒʹ༷ʑͳॲཧΛڬΈࠐ Έ͍͢ɻ ɾόϦσʔγϣϯͳͲ୯ҰͷΤϯςΟ ςΟʹґଘ͢ΔͷͰͳ͘ɺForm ୯ Ґ Ͱ࣮Ͱ͖Δɻ MiddleWareͷྫ
ೝূ νΣοΫɺόϦσʔγϣϯɺ CSRFτʔ ΫϯͷνΣοΫ
3 3 DIͱ ɾ۩ମతʹͲ͏ࠔΔͷ? ͋ΔΫϥε͚ͩςετ͍ͨ͠ͷʹதʹผͷΫϥε͕ೖ͍ͬͯΔͱςετ͠ʹ͍͘ ςετʹ͕͔͔࣌ؒΔϝιου͕தʹ͋ͬͯςετऴྃʹ͕͔͔࣌ؒΔ ɾͰɺ݁ہͲ͏͠Ζͬͯͷ? ҾͰɺΫϥεมΛ֎͔Βड͚औΕΔΑ͏ʹ͢Δ
3 4 Ϣχοτςετͷྫ Repository Service Controller router
3 5 Ϣχοτςετͷྫ Repository Service Controller router ϞοΫʹ͢Γସ͑Δ
3 6 DIͱ ɾंͰྫ͑ͯΈΔ ʮґଘੑͷߴ͍ंɺಛఆͷϝʔ ΧʔͷύʔπͰݻఆ͞ΕͪΌͬͯ ͍ͯɺΧελϚΠζͰ͖ͳ͍ंʯ ͱ͍͏͜ͱʹͳΔ
3 7 ΠϯδΣΫγϣϯͷछྨ ɾίϯετϥΫλΠϯδΣΫγϣϯ - αʔϏεͳͲೖ ɾϝιουΠϯδΣΫγϣϯ - όϦσʔγϣϯͳͲ
3 8 ίϯετϥΫλΠϯδΣΫγϣϯͷྫ
3 9 ͍ํ
4 0 ͍ํ
4 1 ͜ͷ෦ͰόϦσʔγϣ ϯ͕࣮ߦ͞ΕΔ
4 2 ͍ํ
4 3 ͍ํ
-BSBWFMॳֶऀʹ͍͍ͯΔͷ͔ʁ
ԭೄͷεΫʔϧͰPHPࣗମɺڭ͑ʹ͍͘ͱ͍͏அʹ ͳͬͨɻ PHP͕ॳֶऀʹڭ͑ʹ͍͘ཧ༝ - Sinatraͷ֊ͷϑϨʔϜϫʔΫ͕ͳ͍ - ಠࣗϑϨʔϜϫʔΫ͚ͬ͜͏ʹͳΔ͚Ͳɺڭҭίετ͕͔͔Δ - ຊͩͱrubyΑΓهࣄগͳΊ -
LaravelrailsΑΓهࣄগͳ͍ -BSBWFMॳֶऀʹ͍͍ͯΔͷ͔ʁ
RubyͰݴ͏Sinatraʹ͍ۙͪΐ͏Ͳྑ͍ϑϨʔϜϫʔΫ͕ແ͍ (Slim͕͍͕ۙυΩϡϝϯτ͕গͳ͍) PHPجૅ ಠࣗϑϨʔϜϫʔΫ Laravel - ͔ͬ͠Γͱͨ͠ νϡʔτϦΞϧ·ͩແ͍ Rubyجૅ Sinatra
Rails - RailsνϡʔτϦΞϧ Rails Laravel -BSBWFMॳֶऀʹ͍͍ͯΔͷ͔ʁ
ฐࣾͰͷ-BSBWFM࣮·Ͱͷ4UFQ εΫʔϧಠֶͰHTMLɺ CSSɺJS͘Β͍͓ͬͯ ͍ͯΒ͏ ੜͷPHPͰಠࣗϑϨʔϜϫʔ ΫͰܝࣔ൘੍࡞ LaravelͰϒϩά੍࡞ LaravelͰ࣮ 200࣌ؒ 150࣌ؒ
(2ϲ݄ΠϯλʔϯͰݚम) 150࣌ؒ (2ϲ݄ΠϯλʔϯͰݚम) - ࠷ॳͷಠࣗϑϨʔϜϫʔΫͷ෦ઌഐ͕͋Δఔɺ ுΓ͍ͯڭ͑ͳ͍ͱɺڭࡐͱͯ͠ͷఏڙ͕͍͠ɻ - LaravelσΟϨΫτϦߏͳͲΛࣗ༝ʹ͍͡ΕΔɺ ॳֶऀʹͱͬͯɺࠞཚ͕ͪ͠ͳͷͰɺۙʹฉ͚Δ ਓ͕͍ͳ͍ͱݫͦ͠͏ OJT։࢝
-BSBWFMͷҊ݅ࣄ
-BSBWFMͷҊ݅ࣄ Rails Laravel ·ͩ·ͩRails͕ ଟ͍ҹ ݸਓతʹΧϯϑΝϨ ϯεʹεϙϯαʔͯ͠ ͍Δاۀ͕Φεεϝ
-BSBWFMͷҊ݅ࣄ Rails Laravel
-BSBWFMΛ͍ͬͯΔاۀ ࣗࣾ։ൃ डୗ։ൃ
- ॆʹ։ൃεϐʔυΛҡ࣋ͭͭ͠ɺݎ࿚ͳઃܭ͕Ͱ͖ͨ - ࡉ͔͘֊Λ͚ͯઃܭͰ͖Δ͠ɺ࠷ݶͰ͖ΔͷͰྑ͍ɻ - Nuxt.jsͱͷ૬ੑ͕ྑ͘ɺAPI։ൃ͕͔ͬͨ͢͠ɻ - ϑϦʔϥϯεͷํͷϦιʔε֬อ͍͢͠ɻ - ͷ͋ΔํͰLaravelͷҊ݅ΛΓ͍ͨਓ͍Δ͕ɺٻਓ͕গͳ͍
ͨΊ ࣗࣾ։ൃͰ-BSBWFMΛͬͨײ
ࣗࣾ։ൃͰ-BSBWFMΛͬͨײ https://speakerdeck.com/bumptakayuki/laravel-plus-nuxt-dot-js-plus-firebasetedxtokai-fa-kosutowoyi-shi-sitaspakai-fa ৄࡉͪ͜ΒΛ ݟ͍ͯͩ͘͞ʂ
·ͱΊ
- ۙʹઌഐΤϯδχΞ͕ڭ͑ͯ͘ΕΔڥ͕͋ΔͳΒɺॳֶऀ͕PHP ͔ΒLaravelΛֶͿͷΦεεϝʂ - ຊͷPHPษڧձίϛϡχςΟ๛ͳͷͰɺΤϯδχΞؒ૿ ͍͢͠ɻ - LaravelRailsΑΓωοτͷهࣄগͳ͍ - Laravelͷٻਓ·ͩগͳ͘ɺελʔτΞοϓاۀ৽نͷडୗ։ൃͰ
ΘΕ͍ͯΔέʔε͕ଟ͍ҹ ·ͱΊ