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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
68
Laravel Applications with DDD x Clean Architecture x Vibe Coding
bumptakayuki
1
140
Laravel × Clean Architecture
bumptakayuki
1
650
エンジニアのキャリア論
bumptakayuki
1
320
地方カンファレンス主催のススメ
bumptakayuki
1
280
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
2
1.4k
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
0
850
沖縄観光、名物を一挙紹介!
bumptakayuki
2
880
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
3.7k
Other Decks in Programming
See All in Programming
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
phperだってパンチカードでコーディングしたい
o0h
PRO
0
340
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
470
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
1.1k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
300
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
気持ちぃ〜角丸 Squircle
ryu1013
0
310
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
Featured
See All Featured
Unsuck your backbone
ammeep
672
58k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
How to Talk to Developers About Accessibility
jct
2
580
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
540
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Faster Mobile Websites
deanohume
310
32k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
360
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
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ͷٻਓ·ͩগͳ͘ɺελʔτΞοϓاۀ৽نͷडୗ։ൃͰ
ΘΕ͍ͯΔέʔε͕ଟ͍ҹ ·ͱΊ