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
1.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
3
850
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
430
地方のPHPerもクラウドを使う理由 ~コストの最適化とチームに向き合う~ / Why even local PHPers use the cloud ~optimize costs and face the team
seike460
PRO
0
72
OpenTelemetryで始めるベンダーフリーなobservability / Vendor-free observability starting with OpenTelemetry
seike460
PRO
0
200
AIコーディングの本質は“コード“ではなく“構造“だった / The essence of AI coding is not “code” but "structure
seike460
PRO
2
1.2k
OpenTelemetryを活用したObservability入門 / Introduction to Observability with OpenTelemetry
seike460
PRO
1
750
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
400
実行委員長が振り返るBacklogWorldの裏側と運営Backlog術 / The chairperson of the executive committee looks back on the backstage of BacklogWorld and the art of managing Backlog.
seike460
PRO
0
13
Amazon Aurora DSQLパフォーマンスチェック / Amazon Aurora DSQL Performance Check
seike460
PRO
0
23
Other Decks in Programming
See All in Programming
複雑なドメインに挑む.pdf
yukisakai1225
5
1.2k
旅行プランAIエージェント開発の裏側
ippo012
2
930
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
tetta_pdnt
0
4.3k
Deep Dive into Kotlin Flow
jmatsu
1
370
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
250
スケールする組織の実現に向けた インナーソース育成術 - ISGT2025
teamlab
PRO
2
170
Ruby Parser progress report 2025
yui_knk
1
460
AIと私たちの学習の変化を考える - Claude Codeの学習モードを例に
azukiazusa1
11
4.4k
MCPでVibe Working。そして、結局はContext Eng(略)/ Working with Vibe on MCP And Context Eng
rkaga
5
2.3k
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
130
デザイナーが Androidエンジニアに 挑戦してみた
874wokiite
0
550
250830 IaCの選定~AWS SAMのLambdaをECSに乗り換えたときの備忘録~
east_takumi
0
400
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Building Adaptive Systems
keathley
43
2.7k
Statistics for Hackers
jakevdp
799
220k
GraphQLとの向き合い方2022年版
quramy
49
14k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
A designer walks into a library…
pauljervisheath
207
24k
The Invisible Side of Design
smashingmag
301
51k
Typedesign – Prime Four
hannesfritz
42
2.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
A Tale of Four Properties
chriscoyier
160
23k
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/
͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠