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
PHP入門
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Takayuki
November 14, 2019
Programming
310
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
55
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
830
沖縄観光、名物を一挙紹介!
bumptakayuki
2
850
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
3.6k
Other Decks in Programming
See All in Programming
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
460
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
810
不幸な GC
chencmd
0
880
FDEとは、何者なのか?
masapyon1212
0
140
MIZARU@SPAJAM2026 第二回予選
1901drama
0
100
バグを直したら useEffect が消えた
colorful12
3
840
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
130
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
220
初めての模倣学習とVLA
natsutan
0
470
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.5k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Building the Perfect Custom Keyboard
takai
2
860
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
920
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
710
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
Music & Morning Musume
bryan
47
7.4k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Unsuck your backbone
ammeep
672
58k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
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ͷٻਓ·ͩগͳ͘ɺελʔτΞοϓاۀ৽نͷडୗ։ൃͰ
ΘΕ͍ͯΔέʔε͕ଟ͍ҹ ·ͱΊ