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って実際どうなの?
Search
Takayuki
September 01, 2019
Programming
660
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
59
Laravel Applications with DDD x Clean Architecture x Vibe Coding
bumptakayuki
1
140
Laravel × Clean Architecture
bumptakayuki
1
630
エンジニアのキャリア論
bumptakayuki
1
310
地方カンファレンス主催のススメ
bumptakayuki
1
280
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
2
1.4k
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
0
850
沖縄観光、名物を一挙紹介!
bumptakayuki
2
870
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
3.6k
Other Decks in Programming
See All in Programming
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
260
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
220
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
360
setup-vp GitLab対応の裏側
naokihaba
0
140
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
4
430
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
790
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
180
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
210
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.3k
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
280
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
580
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
370
Featured
See All Featured
Designing for Performance
lara
611
70k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
750
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Building AI with AI
inesmontani
PRO
1
1.3k
Raft: Consensus for Rubyists
vanstee
142
7.7k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Docker and Python
trallard
47
4.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Optimising Largest Contentful Paint
csswizardry
37
4k
Exploring anti-patterns in Rails
aemeredith
4
520
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ͷٻਓ·ͩগͳ͘ɺελʔτΞοϓاۀ৽نͷडୗ։ൃͰ
ΘΕ͍ͯΔέʔε͕ଟ͍ҹ ·ͱΊ