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
600
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
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
0
0
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
110
AWS Lambdaから始まった Serverlessの「熱」とキャリアパス / It started with AWS Lambda Serverless “fever” and career path
seike460
PRO
1
520
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
1.1k
実践サーバーレスパフォーマンスチューニング ~その実力に迫る~ / Practical Serverless Performance Tuning ~A Close Look at its Power~
seike460
PRO
2
350
AWS CDKを用いたセキュアなCI/CDパイプラインの構築 / Build a secure CI/CD pipeline using AWS CDK
seike460
PRO
3
760
いまあるチームにフィットさせる Serverless そして Platform Engineeringへの挑戦 / Serverless Fits the Team You Have and Platform Engineering
seike460
PRO
2
2.1k
いまあるチームにフィットさせる Serverless / Serverless fits in with the team you have now.
seike460
PRO
2
180
地方こそサーバーレス! チームにフィットさせるサーバーレス / Rural areas are serverless! Serverless to Fit Your Team
seike460
PRO
1
120
Other Decks in Programming
See All in Programming
Security_for_introducing_eBPF
kentatada
0
110
From Translations to Multi Dimension Entities
alexanderschranz
2
130
暇に任せてProxmoxコンソール 作ってみました
karugamo
1
720
快速入門可觀測性
blueswen
0
330
CSC305 Lecture 25
javiergs
PRO
0
130
Beyond ORM
77web
2
290
14 Years of iOS: Lessons and Key Points
seyfoyun
1
770
menu基盤チームによるGoogle Cloudの活用事例~Application Integration, Cloud Tasks編~
yoshifumi_ishikura
0
110
rails statsで大解剖 🔍 “B/43流” のRailsの育て方を歴史とともに振り返ります
shoheimitani
2
930
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
2
1k
Go の GC の不得意な部分を克服したい
taiyow
2
770
これでLambdaが不要に?!Step FunctionsのJSONata対応について
iwatatomoya
2
3.6k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
49
11k
A Philosophy of Restraint
colly
203
16k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Unsuck your backbone
ammeep
669
57k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Being A Developer After 40
akosma
87
590k
Visualization
eitanlees
146
15k
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/
͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠