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を書く理由、PHPを書いていて良い理由 / Reasons to write PHP a...
Search
shiro seike
PRO
September 27, 2024
Programming
5
1k
PHPを書く理由、PHPを書いていて良い理由 / Reasons to write PHP and why it is good to write PHP
PHPカンファレンス沖縄2024
https://phpcon.okinawa.jp/
shiro seike
PRO
September 27, 2024
Tweet
Share
More Decks by shiro seike
See All by shiro seike
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
720
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
350
地方のPHPerもクラウドを使う理由 ~コストの最適化とチームに向き合う~ / Why even local PHPers use the cloud ~optimize costs and face the team
seike460
PRO
0
62
OpenTelemetryで始めるベンダーフリーなobservability / Vendor-free observability starting with OpenTelemetry
seike460
PRO
0
160
AIコーディングの本質は“コード“ではなく“構造“だった / The essence of AI coding is not “code” but "structure
seike460
PRO
2
1k
OpenTelemetryを活用したObservability入門 / Introduction to Observability with OpenTelemetry
seike460
PRO
1
640
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
300
Amazon Aurora DSQLパフォーマンスチェック / Amazon Aurora DSQL Performance Check
seike460
PRO
0
12
(再)ひとり技術広報からの脱却 / Re:Breaking away from one-man technical public relations
seike460
PRO
1
220
Other Decks in Programming
See All in Programming
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
570
Select API from Kotlin Coroutine
jmatsu
1
210
C++20 射影変換
faithandbrave
0
560
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
590
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
250
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @enterJS Advanced Angular Day 2025
manfredsteyer
PRO
0
170
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.5k
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
関数型まつりレポート for JuliaTokai #22
antimon2
0
160
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
260
Quand Symfony, ApiPlatform, OpenAI et LangChain s'allient pour exploiter vos PDF : de la théorie à la production…
ahmedbhs123
0
120
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
170
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
Agile that works and the tools we love
rasmusluckow
329
21k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Making Projects Easy
brettharned
116
6.3k
Typedesign – Prime Four
hannesfritz
42
2.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
RailsConf 2023
tenderlove
30
1.1k
YesSQL, Process and Tooling at Scale
rocio
173
14k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
24k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Transcript
©Fusic Co., Ltd.  1 PHPΛॻ͘ཧ༝ PHPΛॻ͍͍ͯͯྑ͍ཧ༝ 2024.09.28 @seike460 PHPΧϯϑΝϨϯεԭೄ2024
©Fusic Co., Ltd. 2 ਗ਼Ո ࢙ @seike460 AWS Community Builders
Serverless ݄ؒPHPΧϯϑΝϨϯε2024 - PHPΧϯϑΝϨϯεւಓ2024 ొஃ (LT) - PHPΧϯϑΝϨϯεؔ2024 ొஃ (LT) - PHPerKaigi2024 ొஃ (LT) - PHPΧϯϑΝϨϯεখాݪ2024 ొஃ - PHPΧϯϑΝϨϯε߳2024 ొஃ - PHPΧϯϑΝϨϯεԬ2024 ొஃ - PHPΧϯϑΝϨϯεԭೄ2024 ొஃʢͳ͏ʣ ࣗݾհ ͡Ίʹ גࣜձࣾFusic ϓϦϯγύϧΤϯδχΞ/ΤόϯδΣϦετ
©Fusic Co., Ltd. 3 CONTENTS ࣍ 1. PHPΛॻ͘ཧ༝ͱPHPͷίϯηϓτ 2. PHPͷྺ࢙
3. աڈͷPHPʹର͢ΔωΨςΟϒͳදݱ 4. վળΛଓ͚͖ͯͨPHPͷྺ࢙ 5. PHPΛࢧ͑ΔΤίγεςϜͱ։ൃऀ 6. ·ͱΊ
©Fusic Co., Ltd. 4 PHPΛॻ͘ཧ༝ͱPHPͷίϯηϓτ 1
©Fusic Co., Ltd. 5 PHPΛॻ͘ཧ༝ ͳͥࢲୡαʔϏε։ൃΛߦ͏্ͰPHPΛબ͢ΔͷͰ͠ΐ͏͔ ͪΖΜɺνʔϜͰ͢Ͱʹબఆ͞Ε͍ͯͨͱ͍͏ࣄ͋Δͱࢥ͍·͕͢ɺ ͦͷνʔϜͳͥPHPΛબ͍ͯͨ͠ͷͰ͠ΐ͏͔ গ͠PHPͷಛʹ͍ͭͯৼΓฦͬͯΈ·͠ΐ͏
©Fusic Co., Ltd. 6 PHPͷಛ - ։ൃޮͷߴ͞ - γϯϓϧͳจ๏͔ͭগͳ͍ίʔυྔͰWebΞϓϦέʔγϣϯΛૉૣ͘ߏஙՄೳ -
େنΤίγεςϜ - LaravelͳͲͷϑϨʔϜϫʔΫOSSΛར༻༷͠ʑͳػೳΛ؆୯ʹ࣮Ͱ͖Δ - ίϛϡχςΟͷڧྗͳαϙʔτ - ੈքதͰଟ͘ͷ։ൃऀʹࢦࣔ͞Ε͓ͯΓɺυΩϡϝϯτͳͲॆ࣮͍ͯ͠Δ - ύϑΥʔϚϯεͱηΩϡϦςΟͷਐԽ - PHPߴԽͱݎ࿚Խ͠ଓ͚͍ͯΔ WordPressੈքͷαΠτͷ40%Ͱར༻͞Ε͍ͯΔ࣮͕͋Δ PHPͲ͏ͬͯ͜ͷΑ͏ͳਐԽΛ͛ͨͷͰ͠ΐ͏͔
©Fusic Co., Ltd. 7 PHPൃද࣌ͷ՝ 1990Πϯλʔωοτ͕ٸʹීٴ࢝͠Ίͨ࣌ WebαΠτͷߏங͕ਐΜͰ͍͕ͨಈతίϯςϯπੜ͕·ͩݶఆతͩͬͨ - WebαΠτͷఏڙํ๏ -
੩తͳHTMLϖʔδ͔͠ఏڙͰ͖ͣɺಈతͳίϯςϯπΛఏڙͰ͖ͳ͔ͬͨ - CGIϓϩάϥϜͷෳࡶ͞ͱֶशίετͷߴ͔͞Β͘Δͷ - PHPͷΞϓϩʔν - ؆ܿͳจ๏Ͱֶ͍शίετ - Σϒ։ൃʹಛԽͨ͠ػೳͷఏڙ - αʔόʔαΠυͰͷॲཧΛखܰʹ࣮ݱ
©Fusic Co., Ltd. 8 PHPͷతͱઃܭࢥ - త - Σϒ։ൃʹಛԽͨ͠αʔόʔαΠυεΫϦϓτݴޠͱͯ͠ੜͨ͠ -
ಈతͳΣϒϖʔδΛ؆୯ʹ࡞Ͱ͖ΔΑ͏ʹ͢Δ - ίϯηϓτ: - ͍͢͞ͱखܰ͞Λॏࢹ - ਝͳ։ൃͱଈ࣌ͷ݁ՌΛಘΒΕΔڥΛఏڙ - HTMLʹຒΊࠐΊΔγϯϓϧͳจ๏ - ઃܭࢥ: - ॳ৺ऀʹ͠Έ͍͢ݴޠઃܭ - ʮݱ࣮తͳղܾʯʹযΛ࣮ͯͨ༻ओٛ
©Fusic Co., Ltd. 9 ٕज़ࢤͱαʔϏεࢤͷΤϯδχΞ - ٕज़ࢤͷΤϯδχΞ - ৽͍ٕ͠ज़Λٻ͠ɺٕज़ͷ୳ٻվળʹΛ࣋ͭ -
ϓϩάϥϛϯάݴޠϑϨʔϜϫʔΫͷઃܭݪཧɺ࠷ઌٕज़Ԡ༻ʹڵຯ - αʔϏεࢤͷΤϯδχΞ - αʔϏεΛਝʹϦϦʔε͠ɺϢʔβʔʹՁΛಧ͚Δ͜ͱΛ༏ઌ - ٕज़՝ղܾͷखஈͱଊ͑ɺ։ൃͷޮੑͱ࣮ߦΛॏࢹ - ڞ௨ - ϢʔβʔʹՁΛఏڙ͢Δͱ͍͏࠷ऴඪಉ͡ - ٕज़ͷબఆͱαʔϏεఏڙͷόϥϯε͕ޭͷ伴
©Fusic Co., Ltd. 10 PHPαʔϏεࢤͷΤϯδχΞʹద͍ͯ͠Δͱݴ͑Δ - ਝͳ։ൃ - ؆ܿͳγϯλοΫεͱֶ͍शίετʹΑΓɺ։ൃ։͕࢝ਝ -
ଈ࠲ʹಈ࡞݁ՌΛ֬ೝͰ͖ɺϓϩτλΠϐϯά͕ૉૣ͘ߦ͑Δ - ๛ͳϥΠϒϥϦͱϑϨʔϜϫʔΫ - LaravelWordPressͳͲͷڧྗͳπʔϧ͕ଟଘࡏ͠ɺ։ൃޮΛେ෯ʹ্ - σϓϩΠͷ༰қ͞ - ଟ͘ͷϗεςΟϯάαʔϏεΫϥυͰඪ४αϙʔτ͞Εɺ εϜʔζͳσϓϩΠ͕Մೳ - ΠϯϑϥͷखؒΛ࠷খݶʹ͑ɺαʔϏε։ൃʹूதͰ͖Δ
©Fusic Co., Ltd. 11 ҰํͰPHPٕज़ࢤΤϯδχΞʹܟԕ͞Ε͖ͯͨྺ࢙͋Δ ٕज़ࢤΤϯδχΞʹܟԕ͞Εͨʮ࣌ظʯ͋Γ·ͨ͠ ※ܾͯ͠ࢲࣗ൱ఆతͰ͋Γ·ͤΜɻ - ଞݴޠͱͷൺֱ -
ݫີͳܕγεςϜߴͳΦϒδΣΫτࢦػೳ͕ෆेͱݟΒΕ͍ͯͨ - ͷෆຬ - ίϯύΠϧݴޠʹൺͨࡍͷύϑΥʔϚϯεͷ͕͞ࢦఠ͞Ε͍ͯͨ - ηΩϡϦςΟͷݒ೦ - աڈʹηΩϡϦςΟ͕ଟൃ͠ɺ৴པੑͷෆ͕҆͋ͬͨ - ίʔυͷ࣭ - ॳ৺ऀʹ༏͍͠ઃܭ͕ΤίγεςϜͷख़ʹ͍͔ͭͣɺ ࣭ͳίʔυ͕͕ͬͨ
©Fusic Co., Ltd. 12 PHPͷྺ࢙͔ΒPHPͷൟӫͱ՝ղܾͷྲྀΕΛ͏ PHPਐԽΛଓ͚ΔҰํͰɺ࣌ʹ༧ظ͠ͳ͍՝ʹ໘͖ͯ͠·ͨ͠ ͦͷྺ࢙ΛͨͲΓͳ͕ΒɺͲͷΑ͏ͳϙδςΟϒͳมԽ͕ੜ·Εɺ ·ͨͲͷΑ͏ͳωΨςΟϒͳଆ໘͕ݱΕɺରॲ͖ͯͨ͠ͷ͔Λݟ͍͖ͯ·͠ΐ͏ ͍࣌ؒΛܦͯPHPͲͷΑ͏ʹൟӫ͠ɺ ՝ΛΓӽ͖͑ͯͨͷ͔Ұॹʹ͍ͯΈ·͠ΐ͏
©Fusic Co., Ltd. 13 PHPͷྺ࢙ 2
©Fusic Co., Ltd. 14 Personal Home Page Tools(PHP Tools) PHPݩʑʮPersonal
Home Page Toolsʯͱͯ͠1994ʹRasmus Lerdorf͕࡞ 1995ʹιʔείʔυΛެ։͠ɺ։ൃऀ͕ࣗ༝ʹར༻վྑͰ͖ΔΑ͏ʹͨ͠ ޙʹେنͳ࣮ͱͳΓɺಈతΣϒΞϓϦ։ൃʹ׆༻͞Εͨ ࢀরɿhttps://www.php.net/manual/ja/history.php.php
©Fusic Co., Ltd. 15 groups.google.comʹ͍ͬͯͨϑΥʔϥϜ 1995/06/08 16:00:00ʹ࢝Ίͯ PHP͕ੈͷதʹެ։͞Εͨ - CݴޠͰॻ͔Εͨখ͞ͳCGIπʔϧू
- ΞΫηεϩάཧ ύεϫʔυอޢͳͲͷػೳΛఏڙ - GNUϥΠηϯεԼͰແྉެ։͞Εɺ ؆୯ʹΠϯετʔϧՄೳ
©Fusic Co., Ltd. 16 Personal Home Page Construction Kit 19959݄ɺPHPҰ࣌తʹFIʢForms
Interpreterʣʹվ໊ Rasmus͕ίʔυΛશʹॻ͖͠10݄ʹPHPͱͯ͠࠶ϦϦʔε ʮPersonal Home Page Construction KitʯͱݺΕͨ ҙਤతʹC෩ͷߏจΛ࠾༻͠ɺPerlCͷ͕ࣝ͋ΔϢʔβʔ͕Ҡߦ͍͢͠ઃܭ ࢀরɿhttps://www.php.net/manual/ja/history.php.php
©Fusic Co., Ltd. 17 PHP/FI 2.0 1996ʹPHP/FI 2.0͕ެ։͞ΕɺDBαϙʔτϢʔβʔఆ͕ٛؔՃ 199711݄ʹϕʔλΛଔۀ͠ɺੈքதͰ60,000ͷυϝΠϯʹΠϯετʔϧ ݸਓ։ൃ͕ଓ͍͕ͨɺख़ʹࢸΒͳ͔ͬͨ
ࢀরɿhttps://www.php.net/manual/ja/history.php.php
©Fusic Co., Ltd. 18 PHP/FI ͷίʔυྫ ࢀরɿhttps://www.php.net/manual/ja/history.php.php
©Fusic Co., Ltd. 19 PHP 3 AndiͱZeev͕1997ʹRasmusͱڠྗͯ͠։ൃ ख़ͨ͠ΠϯλʔϑΣʔεΛ༗֦͠ுੑ͕ߴ͘ɺΦϒδΣΫτࢦΛαϙʔτ PHP/FI͔ΒਐԽ͠ɺޭΛऩΊͨ৽͍͠ϓϩάϥϛϯάݴޠ ࢀরɿhttps://www.php.net/manual/ja/history.php.php
©Fusic Co., Ltd. 20 PHP 3 1998ɺPHP 3.0͕ਖ਼ࣜϦϦʔε͞ΕɺPHP/FI 2.0ͷޙܧʹ 9͔݄ͷެ։ςετΛܦͯɺ70,000Ҏ্ͷυϝΠϯͰ༻
Σϒαʔόʔͷ10%ʹΠϯετʔϧ͞Εɺ͘ීٴ ࢀরɿhttps://www.php.net/manual/ja/history.php.php
©Fusic Co., Ltd. 21 PHP 4 1998ɺAndiͱZeev͕Zend EngineΛ։ൃ։࢝ ύϑΥʔϚϯε্ΛతʹɺPHP 4.0Λ2000ʹϦϦʔε
PHP 4.0ߴԽͱ৽ػೳΛଟࡌ͠ɺෳࡶͳΞϓϦʹରԠ ࢀরɿhttps://www.php.net/manual/ja/history.php.php
©Fusic Co., Ltd. 22 PHP 5 2004ʹPHP 5͕ެ։͞ΕɺZend Engine 2.0Ͱ৽ΦϒδΣΫτϞσϧΛαϙʔτ
։ൃνʔϜे໊Ͱߏ͞ΕɺPEARPECLͳͲؔ࿈ϓϩδΣΫτʹଟ͕ؔ༩ ੈքதͷԿԯͷυϝΠϯʹಋೖ͞Ε͍ͯΔঢ়گʹ ࢀরɿhttps://www.php.net/manual/ja/history.php.php
©Fusic Co., Ltd. 23 PHP 6 PHP 6UnicodeରԠͷෳࡶ͞Ͱதஅ(UTF-16ͷऔΓѻ͍ʹΑΔCPU࣌ؒϝϞϦΛେྔফඅ) ։ൃࠔʹΑΓਖ਼ࣜϦϦʔεஅ೦͞Εͨ ओཁػೳPHP
5.3 (໊લۭؒ) ͱ PHP 5.4 (τϨΠτ ͱྻͷ "ॖ" ه๏)ʹׂಋೖ ࢀরɿhttps://www.php.net/manual/ja/history.php.php https://pipedot.org/story/2014-09-21/php6-abandoned-going-straight-to-php7
©Fusic Co., Ltd. 24 աڈͷPHPʹର͢ΔωΨςΟϒͳදݱ 3
©Fusic Co., Ltd. 25 ඇ߹ੑͷ - ໊໋໊ؔنଇͷෆ౷Ұ - ඪ४ؔͰ໋໊نଇ͕Ұ؏͍ͯ͠ͳ͍ -
εωʔΫέʔεͱΩϟϝϧέʔε͕ࠞࡏ - ྨࣅؔͰඇਪɺਪ͕ؔ͋Δ - ໊લ΄΅ಉͳͷʹඇਪͷͷɺ ผ໊ͷਪ͕ؔ͋Δ - Ҿॱংͷෆ߹ - ಉ͡ҙຯͷҾͷॱং͕ؔʹΑͬͯҟͳΔ
©Fusic Co., Ltd. 26 աڈͷηΩϡϦςΟͷ੬ऑੑ(register_globals) - register_globalsͷ ※ݱࡏഇࢭࡁ - GETɺPOSTɺCOOKIEͳͲͷ֎෦ೖྗ͕ࣗಈతʹάϩʔόϧมͱͯ͠ѻΘΕΔ
- ߈ܸऀ͕֎෦͔Β༧ظ͠ͳ͍มΛૢ࡞ɾ্ॻ͖Ͱ͖ΔͨΊɺ ΞϓϦέʔγϣϯͷηΩϡϦςΟ͕੬ऑʹͳΓ·͢ ࢀߟϒϩάɿhttps://blog.ohgaki.net/phpa_rc_fei_a_oa_oa_fa_sa_le_acsa_oe_afp_2
©Fusic Co., Ltd. 27 աڈͷηΩϡϦςΟͷ੬ऑੑ(magic_quotes_gpc) - magic_quotes_gpcͷ ※ݱࡏഇࢭࡁ - ֎෦ೖྗʢGETɺPOSTɺCOOKIEʣʹର͠ɺ
γϯάϧΫΥʔτμϒϧΫΥʔτΛࣗಈͰΤεέʔϓ͢Δػೳ - ೋॏΤεέʔϓෆશͳΤεέʔϓ͕ݪҼͰࠞཚΛট͘ - దͳΤεέʔϓॲཧ੬ऑੑରࡦ࣮ࢪΛ͛ʹͳΔ͜ͱ ͱ͖ʹSQLΠϯδΣΫγϣϯͷ༠ൃʹ ࢀߟϒϩάɿhttps://blog.ohgaki.net/a_ei_a_ram_ei_a_rphpa_ca_a_oa_ra_a_ra_as
©Fusic Co., Ltd. 28 ٕज़ࢤΤϯδχΞʹܟԕ͞Ε͖ͯͨྺ࢙͕͋Δ - ΦϒδΣΫτࢦػೳͷະख़ͳࠒ͕͋ͬͨ - PHP4·ͰͷΦϒδΣΫτࢦػೳݶఆత -
ࢀর͠ͷෳࡶͳߏจ͕ٕज़ऀʹͱͬͯෆຬͷཁҼ - ύϑΥʔϚϯεͷ͞Λࢦఠ͞Ε͍ͯͨࠒ͕͋ͬͨ - ΠϯλϓϦλܕݴޠͱͯ͠ɺେنΞϓϦέʔγϣϯͰ ϝϞϦޮʹݶք - લड़ͷඇ߹ੑͷɺηΩϡϦςΟ্ͷݒ೦
©Fusic Co., Ltd. 29 վળΛଓ͚͖ͯͨPHPͷྺ࢙ 4
©Fusic Co., Ltd. 30 RFCϓϩηεͷಋೖͱPHPNGϓϩδΣΫτͷ্ཱͪ͛ PHP6ͷࣦഊ͔Βֶͼɺݱ࣮తͰޮՌతͳվળʹྗ - PHP 5.4ͷࠒ͔ΒRFCʢRequest for
Commentsʣϓϩηεͷಋೖ - ৽͍͠ػೳݴޠͷมߋఏҊ͕ެ։͞ΕɺίϛϡχςΟશମͰٞɾݕ౼ - ։ൃͷҙࢥܾఆ͕ಁ໌Խ͞Εɺଟ͘ͷ։ൃऀ͕ҙݟΛड़Δػձ͕૿Ճ - PHPNGϓϩδΣΫτ - Zend Engine 3ͷ։ൃΛਐΊͨϓϩδΣΫτ - Dmitry StogovɺNikita PopovɺZeev SuraskiͳͲͷ׆༂ PHPίϛϡχςΟͷߋͳΔਐలΛଅ͠·ͨ͠
©Fusic Co., Ltd. 31 RFCϓϩηεͷಋೖ PHP6ͷࣦഊ͔Βֶͼɺݱ࣮తͰޮՌతͳվળʹྗ - PHP 5.4ͷࠒ͔ΒRFCʢRequest for
Commentsʣϓϩηεͷಋೖ - ৽͍͠ػೳݴޠͷมߋఏҊ͕ެ։͞ΕɺίϛϡχςΟશମͰٞɾݕ౼ - ։ൃͷҙࢥܾఆ͕ಁ໌Խ͞Εɺଟ͘ͷ։ൃऀ͕ҙݟΛड़Δػձ͕૿Ճ ࢀরɿhttps://wiki.php.net/rfc/howto
©Fusic Co., Ltd. 32 PHPNGϓϩδΣΫτͷ্ཱͪ͛ PHP6ͷࣦഊ͔Βֶͼɺݱ࣮తͰޮՌతͳվળʹྗ - PHPNGϓϩδΣΫτ - Zend
Engine 3ͷ։ൃΛਐΊͨϓϩδΣΫτ - Dmitry StogovɺNikita PopovɺZeev SuraskiͳͲͷ׆༂ ࢀরɿhttps://wiki.php.net/phpng
©Fusic Co., Ltd. 33 PHP 7 PHP 7.02015ʹϦϦʔε͞ΕɺZend Engine 3.0ͰύϑΥʔϚϯεΛେ෯্
ྫ֎ॲཧ64ϏοτରԠɺNULL߹ମԋࢉࢠͳͲͷ৽ػೳΛՃ ޙଓͷ7.xγϦʔζͰܕએݴFFIͳͲ͕ಋೖ͞Εͨ ࢀরɿhttps://www.php.net/manual/ja/history.php.php
©Fusic Co., Ltd. 34 PHP 8 PHP 8.02020ʹϦϦʔε͞ΕɺJITίϯύΠϥ໊લ͖ҾɺunionܕͳͲΛՃɻ ܕγεςϜΤϥʔϋϯυϦϯάվળ͞ΕɺҰ؏ੑΛ্ɻ ޙଓͷϦϦʔεͰenumܕϑΝΠόʔɺಡΈऔΓઐ༻ΫϥεͳͲ͕Ճ͞Εͨɻ
ࢀরɿhttps://www.php.net/manual/ja/history.php.php
©Fusic Co., Ltd. 35 PHP͕ΑΓαʔϏεࢤͷΤϯδχΞదԠ͍ͯͬͨ͠ - ΦϒδΣΫτࢦͷڧԽʢPHP5ʣ - ຊ֨తͳΦϒδΣΫτࢦϓϩάϥϛϯάػೳ͕ಋೖɺϞμϯͳ։ൃʹରԠ -
ύϑΥʔϚϯεͷ্ʢPHP7Ҏ߱ʣ - Zend Engineͷେ෯ͳվྑʹΑΓɺߴԽͱϝϞϦ༻ྔͷݮ͕࣮ݱ - ܕγεςϜͷಋೖ - εΧϥʔܕએݴɺΓͷܕએݴɺUnion Typesɺίʔυͷ҆શੑͱՄಡੑ্͕ - ηΩϡϦςΟͷڧԽ - ةݥͳػೳͷഇࢭͱσϑΥϧτઃఆͷվળʹΑΓɺηΩϡϦςΟϦεΫ͕ܰݮ - ίϛϡχςΟͷख़ - PSRʹΑΔඪ४ԽɺϕετϓϥΫςΟεͷڞ༗
©Fusic Co., Ltd. 36 ٕज़ࢤΤϯδχΞຬͰ͖ΔPHP - ߴͳΦϒδΣΫτࢦػೳ - ໊લۭؒɺτϨΠτɺಗ໊ΫϥεͳͲͷಋೖͰɺ ෳࡶͳΞϓϦέʔγϣϯઃܭ͕Մೳ
- ࠷৽ͷݴޠػೳ - δΣωϨʔλΞτϦϏϡʔτͱ͍ͬͨػೳΛ࠾༻͠ɺ ίʔυͷޮͱॊೈੑΛ্ - ύϑΥʔϚϯεͷ͞ΒͳΔ্ʢPHP8ʣ - JITίϯύΠϧͷಋೖʹΑΓɺҰ෦ͷϢʔεέʔεͰύϑΥʔϚϯε্͕
©Fusic Co., Ltd. 37 PHPΛࢧ͑ΔΤίγεςϜͱ։ൃऀ 5
©Fusic Co., Ltd. 38 PHPͷ։ൃΛࢧ͑Δྗ - Composer - ෳͷ֎෦ϥΠϒϥϦͷґଘؔཧΛߦͬͯ͘ΕΔ -
ࣗಈతʹґଘؔΛղܾ͠ɺόʔδϣϯཧΛ༰қʹ ݁Ռͱͯ͠ɺPHPίϛϡχςΟͷ։ൃऀ͕ఏڙ͢Δ ༷ʑͳOSSΛ؆୯ʹΈࠐΉ͜ͱ͕ग़དྷΔ͜ͱͰ ։ൃޮͷ্Λߦ͏͜ͱ͕ग़དྷΔ
©Fusic Co., Ltd. 39 PHP-FIGʹΑΔPHPඪ४ԽʢPSRʣ - PHP Framework Interop Group
(PHP-FIG) - PHPϑϨʔϜϫʔΫϥΠϒϥϦؒͷ૬ޓӡ༻ੑΛ֬อ͠ɺ ։ൃऀ͕ෳͷϑϨʔϜϫʔΫϥΠϒϥϦΛ Έ߹Θͤͯ͑ΔΑ͏ʹ͢ΔͨΊʹઃཱ - PHP Standards Recommendations (PSR) - PHP-FIGʹΑͬͯఏҊ͞ΕΔඪ४తͳΨΠυϥΠϯن֨ - PSRʹ४ڌ͢Δ͜ͱͰɺҟͳΔϑϨʔϜϫʔΫϥΠϒϥϦ͕ Ұ؏ੑΛ࣋ͬͯಈ࡞͢Δ͜ͱ͕Մೳ
©Fusic Co., Ltd. 40 Accepted PSR - PSR-1: جຊతͳίʔσΟϯάඪ४ -
PSR-3: ϩΪϯάΠϯλʔϑΣʔεͷඪ४ - PSR-4: ΦʔτϩʔσΟϯάͷඪ४ - PSR-6: ΩϟογϡΠϯλʔϑΣʔεͷඪ४ - PSR-7: HTTPϝοηʔδΠϯλʔϑΣʔεͷඪ४ - PSR-11: ίϯςφΠϯλʔϑΣʔεͷඪ४ - PSR-12: ֦ு͞ΕͨίʔσΟϯάελΠϧΨΠυ - PSR-13: ϦϯΫ༷ͷඪ४ - PSR-14: ΠϕϯτσΟεύονϟʔͷඪ४ - PSR-15: HTTPαʔόʔϛυϧΣΞͷඪ४ - PSR-16: γϯϓϧͳΩϟογϡͷඪ४ - PSR-17: HTTPϑΝΫτϦʔΠϯλʔϑΣʔεͷඪ४ - PSR-18: HTTPΫϥΠΞϯτͷඪ४ ࢀরɿhttps://www.php-fig.org/psr/
©Fusic Co., Ltd. 41 PSR۩ମྫɿPSR-4 ΦʔτϩʔσΟϯάඪ४ PSR-4Λ͏ͱɺ໊લۭؒͱϑΝΠϧͷύε͕Ұக͢ΔΑ͏ʹઃܭ͢Δ͚ͩͰɺ PHP͕ΫϥεΛࣗಈతʹಡΈࠐΜͰ͘ΕΔΑ͏ʹͳΓ·͢ ໌ࣔతʹ `require`
·ͨ `include` ͢Δඞཁ͕ͳ͘ͳΓ։ൃޮ্ͱϥΠϒϥϦͱͷ߹ੑ͕ͱΕΔ
©Fusic Co., Ltd. 42 PHPΛࢧ͑ΔϑϨʔϜϫʔΫ ॳֶऀʹର࣮ͯ͠ફΛอ͠ͳ͕Β্ڃऀʹରͯ͠։ൃ্ʹد༩ ࣮ෆඋΛࢭͯ͠ηΩϡϦςΟ্ʹܨ͕Δ - Laravel -
Laminas - Symfony - CodeIgniter - CakePHP
©Fusic Co., Ltd. 43 ϑϨʔϜϫʔΫʹΑΔ։ൃ্ʢDBଓͷྫʣ - σʔλϕʔεใͷઃఆ - σʔλϕʔεଓใΛઃఆ -
PDOͰDBଓ࡞ - PDOΛ༻ͯ͠DBʹଓ - ΤϥʔϞʔυઃఆ - ΤϥʔϞʔυΛྫ֎ʹઃఆ - SQLΫΤϦ४උ - IdΛ݅ʹΫΤϦΛ४උ - SQLΫΤϦ࣮ߦ - ΫΤϦΛ࣮ߦ͠σʔλऔಘ - ݁Ռͷऔಘ - ΫΤϦ݁Ռ͔ΒϢʔβʔใऔಘ - ྫ֎ॲཧ - DBଓΤϥʔ࣌ʹΤϥʔϝοηʔδදࣔ
©Fusic Co., Ltd. 44 ϑϨʔϜϫʔΫʹΑΔ։ൃ্ʢLaravelͷ߹ʣ ઌఔͷॲཧΛʮ͜ΕΛɺ͜͏ͯ͠ɺ͜͏͡Όʂʯ ͱ͍ͬͨϨϕϧͰॲཧՄೳ ߹ΘͤͯSQLΠϯδΣΫγϣϯͳͲͷ ඪ४తͳηΩϡϦςΟͷରࡦߦͬͯ͘Ε͍ͯΔҝ ։ൃޮͱηΩϡϦςΟͷ྆໘Λ
ߴ͍ϨϕϧͰ্ͯ͘͠Ε͍ͯΔ
©Fusic Co., Ltd. 45 PHP༷ʑͳਓʑʹࢧ͑ΒΕ͍ͯΔ PHPͷඇӦརஂମʮPHP Foundationʯ LaravelɺSymfonyͳͲͷϑϨʔϜϫʔΫίϛϡχςΟ ComposerɺPHPUnitͳͲͷΦʔϓϯιʔεϓϩδΣΫτͷίϛϡχςΟ ίϛϡχςΟϓϥοτϑΥʔϜPHP.netΛࢧ͑ΔεϙϯαʔΠϯϑϥఏڙاۀ
https://www.php.net/thanks.php
©Fusic Co., Ltd. 46 ࢲୡ͕PHPͱڞʹະདྷΛΔͨΊʹग़དྷΔ͜ͱ PHP͕ਐԽ͖ͯͨ͠ྺ࢙ʹ༷ʑͳࣄΛΓӽ্͑ͨͰͷ ։ൃऀͨͪͷྗͷɺڧྗͳΤίγεςϜ͕ߏங͞Ε͍ͯ·͢ ࠓޙPHP͕ಁ໌ੑͷ͋Δਖ਼͍͠ਐԽΛଓ͚Δ͜ͱ༰қʹ૾Ͱ͖·͢ ΤίγεςϜͷ্ͰߏஙΛਐΊΔ͏͑ͰPHPͷߩݙΛҙࣝͯ͠Β͑Δͱ͍Ͱ͢ -
OSSͷ։ൃOSSͷίϯτϦϏϡʔτ - PHPΧϯϑΝϨϯεԭೄͷΑ͏ͳΧϯϑΝϨϯεͰͷݟڞ༗ - ߋʹ౿ΉࠐΈPHPຊମͷ։ൃʹՃΘΔํ๏ͷࡧ
©Fusic Co., Ltd. 47 PHPͷྺ࢙ʹݟΔࢲୡ͕PHPΛॻ͍͍ͯͯྑ͍ཧ༝ PHPͷྺ࢙Λඥղ͘ͱ༷ʑͳ՝Λܦͯਖ਼͍͠ਐԽͷྺ࢙͕֬ೝͰ͖ͨ ͦͷྺ࢙ࣗମ͕ʮࢲୡ͕PHPΛॻ͍͍ͯͯྑ͍ཧ༝ʯͷূ໌ͱߟ͑·͢ ͦΜͳPHPʹࢧ͑ΒΕ͍ͯΔதͰɺͦͷΤίγεςϜΛޙԡ͍ͨ͠͠ ίϛϡχςΟͷҰһͱͯ͠PHPΤίγεςϜΛࢧ͑ΔखஈΛࡧ͠·͠ΐ͏
©Fusic Co., Ltd. 48 ·ͱΊ 6
©Fusic Co., Ltd. 49 ·ͱΊ PHPͦͷྺ࢙ͷதͰਐԽΛଓ͚ɺύϑΥʔϚϯεηΩϡϦςΟͷ໘Ͱେ෯ͳվળΛ࣮ݱ Point 01 ٕज़ࢤͷਂ͍ΤϯδχΞͱɺαʔϏεࢤͷ։ൃऀํʹରԠͰ͖Δॊೈੑ͕͋Δ Point
02 ๛ͳϑϨʔϜϫʔΫͱ׆ൃͳίϛϡχςΟͷࢧԉʹΑΓɺ։ൃͷޮԽͱඪ४Խ͕ਐΜͰ͍Δ Point 03 ͥͻPHPerͱͯ͠શੈքϨϕϧͰͷPHPίϛϡχςΟΛࢧ͑Δ׆ಈΛݕ౼͍ͩ͘͞ Point 04
©Fusic Co., Ltd. 50 Thank You We are Hiring! https://recruit.fusic.co.jp/
͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠