Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
570
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
AWS Lambdaから始まった Serverlessの「熱」とキャリアパス / It started with AWS Lambda Serverless “fever” and career path
seike460
PRO
1
380
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
1k
実践サーバーレスパフォーマンスチューニング ~その実力に迫る~ / Practical Serverless Performance Tuning ~A Close Look at its Power~
seike460
PRO
2
330
AWS CDKを用いたセキュアなCI/CDパイプラインの構築 / Build a secure CI/CD pipeline using AWS CDK
seike460
PRO
3
730
いまあるチームにフィットさせる Serverless そして Platform Engineeringへの挑戦 / Serverless Fits the Team You Have and Platform Engineering
seike460
PRO
2
1.9k
いまあるチームにフィットさせる 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
110
AWS X-Rayを利用したサーバーレスのパフォーマンス分析 / Serverless performance analysis using AWS X-Ray
seike460
PRO
2
170
Cloudflare Workers x AWS Lambdaの組み合わせユースケース / Cloudflare Workers x AWS Lambda Combination Use Case
seike460
PRO
2
510
Other Decks in Programming
See All in Programming
Cursorでアプリケーションの追加開発や保守をどこまでできるか試したら得るものが多かった話
drumnistnakano
0
180
React CompilerとFine Grained Reactivityと宣言的UIのこれから / The next chapter of declarative UI
ssssota
7
2.7k
14 Years of iOS: Lessons and Key Points
seyfoyun
0
360
Leverage LLMs in Java with LangChain4j and Quarkus
hollycummins
0
110
PipeCDの歩き方
kuro_kurorrr
3
130
Remix on Hono on Cloudflare Workers
yusukebe
1
380
初めてDefinitelyTypedにPRを出した話
syumai
0
470
Gestaltung digitaler Lösungen – Produktions- oder Designprozess?
techstories
0
110
チームにとって最適なスキルアップ施策とは何か/what-is-the-best-skill-up-approach-for-team
nobuoooo
0
160
Full stack testing :: basic to basic
up1
1
760
事業成長を爆速で進めてきたプロダクトエンジニアたちの成功談・失敗談
nealle
3
880
競技プログラミングで 基礎体力を身につけよう / You can get basic skills through competitive programming
mdstoy
0
130
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
The Cost Of JavaScript in 2023
addyosmani
45
6.9k
Speed Design
sergeychernyshev
25
640
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Building an army of robots
kneath
302
43k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
What's in a price? How to price your products and services
michaelherold
243
12k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
27
2.1k
Scaling GitHub
holman
458
140k
Building Applications with DynamoDB
mza
90
6.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
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/
͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠