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
PHP入門
Search
Takayuki
November 14, 2019
Programming
320
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHP入門
PHP入門
Takayuki
November 14, 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
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 Programming
See All in Programming
Heart of Swift Concurrency
koher
0
930
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4.8k
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
7.8k
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
470
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
160
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
220
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
450
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
360
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
540
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
130
What We Talk About When We Talk About XP
m_seki
2
660
iOSDC2026登壇資料.pdf
riofujimon
0
170
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
340
My Coaching Mixtape
mlcsv
0
320
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Writing Fast Ruby
sferik
630
63k
The SEO identity crisis: Don't let AI make you average
varn
0
560
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
Exploring anti-patterns in Rails
aemeredith
4
510
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
430
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.9k
The Invisible Side of Design
smashingmag
301
52k
Transcript
PHPೖ
3.PHPίϛϡχςΟͷݱঢ় Agenda 2.PHPͷྺ࢙ 1.ࣗݾհɾձࣾհ 4.PHPΛֶͿϝϦοτ 7.PHPͷҊ݅ࣄ 6.PHPॳֶऀʹ͍͍ͯΔͷ͔ʁ 5.PHPͷ֓ཁɾϝϦοτ
ࣗݾհɾձࣾհ
1.ࣗݾհ ◆໊લ ླ ೭(Suzuki Takayuki) ※ಉಉ໊ଟͯ͘ࠔͬͯ·͢ɻɻɻ ◆ࣗݾհ ɾ1990ɺਆಸݝੜ·Εɻ ɾࣾձਓʹͳ͔ͬͯΒɺϓϩάϥϛϯάΛ࢝ΊΔɻ ɾ2015ʹϑϧεϐʔυʹೖࣾ͠ɺ2017ʹಠཱɻ
ɾݱࡏɺडୗ։ൃΛΓͭͭɺࣗࣾWebαʔϏεΛ։ൃதɻ ◆झຯ ίεϓϨɺԻָϥΠϒɺϚϥιϯେձʹग़Δɺٿ؍ઓ ◆εΩϧ PHP,Symfony2,CakePHP3,Laravel5, JavaScript,backbone.js,Angular.js
Copyright Re:Build.inc All Rights Reserved. 1.ձࣾհ ◆ձ໊ࣾ גࣜձࣾRe:Build ◆ॅॴ ԭೄݝԭೄࢢதԝ̍ஸ̍̒−̕
◆ࣄۀ༰ ɾࣗࣾWEBαʔϏεͷاըɾ։ൃɻ ɾडୗ։ൃ ◆ࣾһ 6໊ ◆ΤϯδχΞͷಇ͖ํ ϦϞʔτϫʔΫՄೳͳࣗ༝ͳಇ͖ํΛਪͯ͠·͢ʂ
6 ࣗݾհ ԭೄͰෳͷίϛϡχςΟΛӡӦͯ͠·͢
7 ࣗݾհ 7/13ʹLaravel ΧϯϑΝϨϯε Ͱొஃ͖ͯ͠·ͨ͠ʂ ৄͪ͘͜͠Β https://dev.re-build.company/ entry/2019/07/23/193108
2013/04 ৽ଔͰ౦ژͷITϕϯνϟʔاۀʹ γεςϜΤϯδχΞͱͯ͠ೖࣾ 2015/07 ౦ژͷ্اۀͰWebΤϯδχΞ ͱͯ͠ೖࣾ ܦྺ 2015/07 ϑϦʔϥϯεΤϯδχΞͱͯ͠ ಠཱ
2017/11 ԭೄͰγεςϜ։ൃձࣾΛىۀ 2019/08 ౦ژͱԭೄͷاۀ༷͔Βͷ։ൃҊ݅Λ͚͍ͯΔɻ
ܦྺ·ͱΊ 4&4 4*FS 8FCܥࣗࣾ։ൃ ϑϦʔϥϯεΤϯδχΞ ىۀ डୗ։ൃ ελʔτΞοϓ ϓϩάϥϛϯάεΫʔϧͷߨࢣ
ͳͲɻ෯͘ۀΛ͖ͯ͠·ͨ͠ɻ
1 0 ࣗࣾWebαʔϏεͷ։ൃ ɾαʔϏε໊ Tadoru https://tadoru.work/ ɾγεςϜ֓ཁ ΤϯδχΞಛԽܕͷ ϦϑΝϥϧ
Ϋϥυιʔγϯά
ϑϩϯτΤϯυ αʔόαΠυ શମߏ Gitlab CI ϥΠϒϥϦͳͲ Firebase ϥΠϒϥϦͳͲ
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 https://ja.wikipedia.org/wiki/PHP_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)
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ΛֶͿϝϦοτ
1)1ͷ֓ཁɾϝϦοτ
PHPͱ PHPͱಈతʹWebϖʔδΛੜ͢Δ͜ͱ͕Ͱ ͖ΔαʔόʔαΠυͷεΫϦϓτݴޠͰ͢ɻଞͷ ϓϩάϥϛϯάݴޠͱൺֱ༷ͯ͠จ๏͕؆ ୯ͳͨΊशಘ͍͢͠ͱݴΘΕ͍ͯ·͢ɻ·ͨ MySQLͳͲͷσʔλϕʔεͱͷ࿈ܞ͕༰қͳ͜ ͱͳͲ͔ΒɺWordPressΛؚΊͨWebΞϓϦ έʔγϣϯͷ։ൃʹΑ͘ΘΕΔ༗໊ͳεΫ ϦϓτݴޠͰ͋Γ·͢ɻ https://www.kagoya.jp/howto/wordpress/php/
PHPͰ࡞ΒΕΔγεςϜͲΜͳͷ͕ଟ͍͔ʁ ɾECαΠτ - EC-CUBE ɾWebϝσΟΞ - WordPress ɾϙʔλϧαΠτ
LaravelҎ֎ͷPHPϑϨʔϜϫʔΫݮগʹ͋ΔΑ͏Ͱ͢ɻ࣍ʹւ֎ͷݱঢ়ΛݟͯΈ·͢ɻ ຊͷPHPϑϨʔϜϫʔΫͷಈ
ຊΑΓલ͔ΒLaravelͷਓؾ͕ग़͍ͯΔ ੈքͷPHPϑϨʔϜϫʔΫͷಈ
3େϑϨʔϜϫʔΫͷΠϝʔδ(एׯɺओ؍ؚΉ) CakePHP Laravel Symfony ૣ͍ ͍ ͍ ߴ͍ ։ൃ ֶशίετ
1)1ॳֶऀʹ͍͍ͯΔͷ͔ʁ
ԭೄͷεΫʔϧͰ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࣌ؒ 300࣌ؒ (2ϲ݄ΠϯλʔϯͰݚम) 300࣌ؒ (2ϲ݄ΠϯλʔϯͰݚम) - ࠷ॳͷಠࣗϑϨʔϜϫʔΫͷ෦ઌഐ͕͋Δఔɺ ுΓ͍ͯڭ͑ͳ͍ͱɺڭࡐͱͯ͠ͷఏڙ͕͍͠ɻ - LaravelσΟϨΫτϦߏͳͲΛࣗ༝ʹ͍͡ΕΔɺ ॳֶऀʹͱͬͯɺࠞཚ͕ͪ͠ͳͷͰɺۙʹฉ͚Δ ਓ͕͍ͳ͍ͱݫͦ͠͏ OJT։࢝
ฐࣾͰͷະܦݧΤϯδχΞͷҭͯํ ໘ͰԼهͷ߲Λॏࢹ ɾࣗओֶशҙཉ ɾૉ͞ ɾϗϨϯιΛ͔ͬ͠ΓͰ͖Δ͔ʁ
ฐࣾͰͷະܦݧΤϯδχΞͷҭͯํ ݚमͰԼهͷ߲Λॏతʹڭ͑Δ ɾ࣭ͷํ ɾࣗݾεέδϡʔϧཧ ɾάάΔྗ ɾ։ൃͷָ͠͞ ɾϑϨʔϜϫʔΫʹґଘ͠ͳ͍ਂ͍ཧղ
ฐࣾͰͷະܦݧΤϯδχΞͷҭͯํ ࣾͰͷڭҭମ੍ ɾ࣭ʹੵۃతʹ͑Δɻ ɾݚम୲ऀΛଐਓԽͤ͞ͳ͍ɻ ɾఆظతʹ࠲ֶܗࣜͰ୭͔͕ษڧձΛ͢Δɻ ɾձࣾͱͯ͠৽ਓʹڭ͑ΔจԽΛఆணͤ͞Δɻ
ݚमᶃ ੜͷPHPͰಠࣗϑϨʔϜϫʔΫͰϒϩά੍࡞ # PHPͰͷϒϩά࡞ݚम ## ཁ݅ - ੜͷPHPͷΈͰ࡞͢Δ͜ͱ(ϑϨʔϜϫʔΫΘͳ͍) ## ػೳҰཡ
ɹ- Ϣʔβొػೳ ɹ- ϩάΠϯػೳ ɹ- ϩάΞτػೳ ɹ- هࣄొػೳ ɹ- هࣄআػೳ ɹ- هࣄݕࡧػೳ ɹ- هࣄฤूػೳ ɹ- هࣄҰཡϖʔδϯάػೳ ɹ- ΧςΰϦొػೳ ɹ- ΧςΰϦআػೳ ɹ- ΧςΰϦฤूػೳ ɹ- ΧςΰϦҰཡػೳ ɹ- λάొػೳ ɹ- λάআػೳ ɹ- λάฤूػೳ ɹ- λάҰཡػೳ ## ηΩϡϦςΟରࡦ ɹ- CSRFରࡦग़དྷ͍ͯΔࣄ ɹ- XSSରࡦ͕ग़དྷ͍ͯΔࣄ ɹ- SQLΠϯδΣΫγϣϯରࡦ͕ग़དྷ͍ͯΔࣄ ## MVCϞσϧ͕࣮ݱͰ͖͍ͯΔ͜ͱ ## ֤ೖྗ߲ʹରͯ͠όϦσʔγϣϯ͕ग़དྷ͍ͯΔࣄ(PHPଆͰߦ͏) - ඞਢνΣοΫ - ࣈνΣοΫ - ϝʔϧΞυϨεܗࣜνΣοΫͳͲ ## PSR2ʹ४ڌ͍ͯ͠Δ͜ͱ ## ༻͢Δٕज़ php7,apache,mysql ## ظݶ ◦/◦◦·Ͱ
ݚमᶄ LaravelͰCRUDΞϓϦ࡞ # LaravelͰͷCRUDΞϓϦ࡞ݚम ## ཁ݅ - LaravelͰCRUDͷ͋ΔΞϓϦΛ࡞͢Δࣄ - جຊతʹࣗͷΞΠσΟΞͰ࡞Γ͍ͨΞϓϦΛ࡞͢Δ
- ྫɿTwitterͬΆ͍ΞϓϦɺཱྀߦઌใετοΫΞϓϦͳͲɻ - ࣗͰը໘ઃܭɺDBઃܭ͔Βߦ͏ɻ - ࣗͰ࡞Γ͍ͨΞϓϦΛ࡞Δ͜ͱͰ։ൃ͢Δ͜ͱͷָ͠͞ΛͬͯΒ͏ɻ
ݚमᶅ LaravelͰ࣮ -OJTܗࣜ -جຊతʹࣗࣾ։ൃͷػೳमਖ਼όάमਖ਼͔ΒೖΔɻ -ͬ͘͟ΓλεΫͷظݶܾΊΔ͕ɺ࠷ॳܰΊͷλεΫΛ͓ئ͍͢Δɻ -࣌ؒΛ͔͚ͯίʔυϨϏϡʔ͢Δɻ
1)1ͷҊ݅ࣄ
1)1ͷҊ݅ࣄ Ruby PHP
1)1ͷҊ݅ࣄ Rails Laravel
1)1Λ͍ͬͯΔاۀ ࣗࣾ։ൃ डୗ։ൃ
·ͱΊ
- ۙʹઌഐΤϯδχΞ͕ڭ͑ͯ͘ΕΔڥ͕͋ΔͳΒɺॳֶऀ͕PHP ͔ΒLaravelΛֶͿͷΦεεϝʂ - ຊͷPHPษڧձίϛϡχςΟ๛ͳͷͰɺΤϯδχΞؒ૿ ͍͢͠ɻ - LaravelRailsΑΓωοτͷهࣄগͳ͍ - Laravelͷٻਓ·ͩগͳ͘ɺελʔτΞοϓاۀ৽نͷडୗ։ൃͰ
ΘΕ͍ͯΔέʔε͕ଟ͍ҹ ·ͱΊ