$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ほげ言語にあってPHPにない機能
Search
Hisateru Tanaka
February 11, 2024
Technology
6
3.6k
ほげ言語にあってPHPにない機能
PHPカンファレンス関西2024発表資料です。
Hisateru Tanaka
February 11, 2024
Tweet
Share
More Decks by Hisateru Tanaka
See All by Hisateru Tanaka
どうなる Remix 3
tanakahisateru
2
390
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
2
230
哲学史とモデリング
tanakahisateru
4
870
オブジェクト指向宗教史
tanakahisateru
32
18k
君たちはどうプログラミングするか
tanakahisateru
16
2.9k
デバッグ用ロガーの注入どうする?
tanakahisateru
2
660
アンドキュメンテッド ちょうぜつソフトウェア 設計入門 「オブジェクト指向に定義はない」のか?
tanakahisateru
25
9.8k
ちょうぜつ改め21世紀ふつうのソフトウェア設計
tanakahisateru
14
8.6k
まんがのかきかた
tanakahisateru
8
740
Other Decks in Technology
See All in Technology
Multimodal AI Driving Solutions to Societal Challenges
keio_smilab
PRO
1
140
EM歴1年10ヶ月のぼくがぶち当たった苦悩とこれからへ向けて
maaaato
0
260
Gemini でコードレビュー知見を見える化
zozotech
PRO
1
170
re:Invent 2025 ふりかえり 生成AI版
takaakikakei
1
160
第4回 「メタデータ通り」 リアル開催
datayokocho
0
110
バグハンター視点によるサプライチェーンの脆弱性
scgajge12
3
830
最近のLinux普段づかいWaylandデスクトップ元年
penguin2716
1
640
Design System Documentation Tooling 2025
takanorip
2
990
Agentic AI Patterns and Anti-Patterns
glaforge
1
180
Ryzen NPUにおけるAI Engineプログラミング
anjn
0
250
Databricksによるエージェント構築
taka_aki
1
140
AI時代におけるアジャイル開発について
polyscape_inc
0
120
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.7k
Practical Orchestrator
shlominoach
190
11k
Typedesign – Prime Four
hannesfritz
42
2.9k
Optimizing for Happiness
mojombo
379
70k
Fireside Chat
paigeccino
41
3.7k
Become a Pro
speakerdeck
PRO
30
5.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Docker and Python
trallard
47
3.7k
Scaling GitHub
holman
464
140k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Code Reviewing Like a Champion
maltzj
527
40k
Designing Experiences People Love
moore
143
24k
Transcript
΄͛ݴޠʹ͋ͬͯ 1)1ʹͳ͍ػೳ GBMTF )" (&
·͍ͲͰ͓·Μ͕ͳ ؔ1)1Ϣʔβʔ͓͡͞ΜͰ͢ w ʮͪΐ͏ͥͭιϑτΣΞ ઃܭೖʯஶऀ w ؔͷ1)1ίϛϡχςΟʹ ΄Ͳ͍·͢ w ݩͷօ͞Μ͝ແࠫଡͰ͢
Α͏ͦ͜ଞҬͷօ͞Μ !UBOBLBIJTBUFSV ాதͻͯ͞Δ ͪΐ͏ͥͭιϑτΣΞઃܭೖ ʕʕ1)1Ͱཧղ͢ΔΦϒδΣΫτࢦͷ׆༻ ాதͻͯ͞Δஶ *4#/
΄͛ݴޠ ͱʜ
ϙʔϧɾάϨΞϜ ʮී௨ͷౕΒͷ্Λߦ͚ʯͰ
΄͛ݴޠͷύϥυοΫε w ͦͦ͜͜ਓؾͷϓϩάϥϛϯάݴޠΛԾʹʮ΄͛ݴޠʯͱ͢Δ w ΄͛ݴޠ͕࠷ߴͩͱݴ͏ਓɺΑΓػೳͳݴޠΛྼ͍ͬͯΔͱݟԼ͢ w ͱ͜Ζ͕ɺ΄͛ݴޠΑΓߴͳػೳΛ࣋ͭݴޠ࣮ࡏ͢Δ w ͦ͏ݴΘΕͯɺΑΓߴͳݴޠػೳͷҙຯΛೝࣝͰ͖ͳ͍ w
΄͛ݴޠΑΓෳࡶͳݴޠաͰແବͩͱޡೝ͍ͯ͠Δ w ͜ͷؔ૬ରతͰɺ΄͛ݴޠԿʹͰஔ͖͑ͯݴ͏͜ͱ͕Ͱ͖Δ
͜Θ ҙຯΘ͔ΒΜ ͓͓ Ϋιݴޠ͕ ΄͛ݴޠѪऀͷ ೝࣝϨϯδ
΄͛ݴޠ1)1ͩͱͯ͠ɺ ͳ͍ػೳͷඞཁੑΛ͓͖ͬͯ·͠ΐ͏
Ϧετͱࣙॻͷ۠ผ 1)1Ҏ֎ͷ΄ͱΜͲͷݴޠ͔Βݟͯҧײ͋Δͷ͕BSSBZ ɻ ྫ͑1ZUIPOͷجຊܕMJTUͱEJDUͰશ͘ผɻ 1)1ͷྻ1ZUIPOͰݴ͏ͱ0SEFSFE%JDUʹ͋ͨΔɻ 1)1ʙϦετͷΑ͏ʹ͏ͱϦετͱͯ͠࠷దԽ͞ΕΔΑ͏ʹɻ ύϑΥʔϚϯεͳ͘ͳ͚ͬͨͲɺߏจ্BSSBZͷΈɻ %PDίϝϯτͰBSSBZͱMJTUΛ۠ผͯ͠1)14UBOΛཔΔɻ
δΣωϦΫε ܕύϥϝʔλ *UFSBUPS"OJNBMͷΑ͏ͳΈ߹Θͤܕɻ ίϯύΠϧ࣌ʹෆਖ਼Λશʹ͚ͳ͍ॲཧܥͰ͍͠ɻ ͔Ζ͏ͯ͡ྻʹؔͯ͠ɺ%PDίϝϯτͱ੩తղੳͰิॿ͢Δश׳ɻ "OJNBM<>BSSBZTUSJOH "OJNBMMJTU"OJNBMʜ 1)14UBOʹ!UFNQMBUF͕͋Δ͚Ͳɺ5ZQF4DSJQUͷํ͕ང͔ʹʜ
શ͕ͯΦϒδΣΫτ :FT3VCZ 1ZUIPO +BWB4DSJQU 4DBMBʜ มʹଋറͰ͖Δͷશͯɺಉ͡ܗࣜͰϝιουίʔϧՄೳɻ ΦϒδΣΫτҎ֎ͷܕ͕ͳ͍ͷͰΦϑαΠυϧʔϧ͕গͳ͘ͳΔɻ /P$ +BWB (P
3VTUʜ8): ॏࢹͷݴޠͰɺόΠτ෯ΧπΧπͷ࠷దԽΛهड़͍ͨ͠ɻ 4DBMB3VCZͷΑ͏ͳΦϒδΣΫτΛόΠτίʔυʹ࠷దԽɻ 1)1ͱ͔1FSMͱ͔ʜ྆ํͷσϝϦοτΛ࣋ͭײ͡ˠؤுΖ͏ɻ
ύοέʔδ ໊લۭؒ Մࢹੑ +BWBͷσϑΥϧτʮΫϥεͷ࠶ར༻ಉҰύοέʔδʯɻ֎෦ެ ։ʹQVCMJDDMBTTͱࢦఆ͢Δඞཁ͕͋Δɻ GJOBMDMBTTҎ֎ʹTFBMFEDMBTT͋ΔɻܧঝؔΛ࡞ΕΔͷύο έʔδͰ͚ͩɺͷΑ͏ʹ੍ݶͰ͖Δɻ 1)1ͷ3'$ʹQSJWBUFDMBTTͷ͋ͬͨؾ͕͢ΔΜ͚ͩͲͳʜ %PDίϝϯτͰ!JOUFSOBMͳͲΛͬͯҙਤΛද͓ͯ͜͠͏ɻ
UIJT ·ͨTFMG ͷলུ ΫϥεͰࣗΛද͢UIJTΛলུͯ͠ॻ͚Δɻ w ϝιουˠͳ͔ͬͨΒάϩʔόϧؔ w ϩʔΧϧมˠͳ͔ͬͨΒϓϩύςΟˠͳ͔ͬͨΒάϩʔόϧ Ͱ͖Δ$ +BWBܥ
$ 3VCZ ͪΐͬͱΈҧ͏͚Ͳ Ͱ͖ͳ͍1)1 1ZUIPO +BWB4DSJQU (P 3VTUʜ ͲͪΒ͕ྑ͍͔୯७ͳ༏ྼͱݴ͑ͳ͍ɻ Ͱ1)16OJUͷUIJTBTTFSU&RVBMT +6OJUΑΓΊΜͲ͍ͳ
͠͞ͷਪҠੑ ҉ܕมͷݫ͠͞ "##$Ͱ͋Ε"$Ͱ͋Δɻ ʜͱͳΒͳ͍߹͕͋Δɻ WBS@EVNQ GBMTFGBMTFl USVF WBS@EVNQ l
GBMTF ʮ҉Ͱʹมͯ͠ൺֱʯʮԿ͔ͩGBMTFͬΆ͍ʯͱ͍ͬͨΏΔ͍ ՁੑൺֱΛΔํɻ͔ͱ͍ͬͯͰݫ͗͢͠Δ߹ʜ ଞͷݴޠʮൺֱ͢ΔͱΤϥʔʯΛબ͍ͯ͠Δ͜ͱ͕ଟ͍ɻ
จࣈྻҎ֎ͷϋογϡࣙॻΩʔ +BWB0CKFDUʹIBTI$PEF Λ࣋ͭˠԿͰΩʔʹ͑Δɻ DIFTT(SJE.BQQVU OFX1PJOU% QBXO 1ZUIPOͷλϓϧΠϛϡʔλϒϧͳͷͰࣙॻͷΩʔʹͳΔɻ
DIFTT@HSJE@EJDU< >QBXO 3VCZҙͷΦϒδΣΫτ0,ͰɺγϯϘϧܕ͕͍͍ײ͡ɻ +BWB4DSJQUͱ1)1จࣈྻΩʔͷΈɻ
҉มলུͷ໌ࣔతͳఆٛ 4DBMB࣍ͷΑ͏ͳ҉ϧʔϧΛʮఆٛʯ͢Δจ๏Λ࣋ͭ wԋࢉͰܕ͕߹Θͳ͍ͱ͖ͷมΛͲ͏͢Δ͔ wಛఆͷهड़ ྫ͑UIJT Λলུͨ࣌͠ͷڍಈ JNQMJDJUΩʔϫʔυʜ΄͛ݴޠͷϢʔβʔ͕ཧղͰ͖ͳ͍ݴޠػೳͷ ͔ͳΓ্Ґʹ͋ΔΜ͡Όͳ͍Ͱ͠ΐ͏͔ɻ ͰυϝΠϯಛԽݴޠͳΜ͔ʹศརɻٕज़తͳϊΠζݮɻ
طଘΫϥεͷಈతͳ֦ு 3VCZͷಛҟΫϥεɻ3BJMTͰEBZTͱ͔ॻ͚ΔΞϨɻ wϦςϥϧͷ3VCZຊମͷ*OUFHFSΠϯελϯε طଘ wϝιουͷEBZTޙ͚ͷ(FNʹఆٛ͞Ε͍ͯΔ 4DBMBͷ߹ɺଘࡏ͠ͳ͍ϝιουͷίʔϧ࣌ʹɺJNQMJDJUఆٛͨ͠ ϥούʔΫϥε͕উखʹ͔Ϳ͞ΔΑ͏ͳΈͰɺࣅͨΑ͏ͳڍಈΛ ࣮ݱͰ͖Δɻ
ϚΫϩ ϝλϓϩάϥϛϯά -JTQσʔλߏͱϓϩάϥϜίʔυ͕ಉ͡ܗΛ͍ͯ͠Δɻσʔλߏ Λ࡞ΔϓϩάϥϜΛॻ͚ͩ͘ͰɺಈతʹϓϩάϥϜΛੜͰ͖Δɻ 3VCZ4DBMBϓϩάϥϜͰϓϩάϥϜΛ࡞ΔͨΊͷػೳΛ࣋ͭɻ /JN4DBMBͷJNQMJDJUʹࣅͨܗͰɺߏจΧελϚΠζϚΫϩΛ࣋ͭɻ 1)1ʹࠇຐज़༻ͷػೳ͕͋·Γͳ͍ͷͰɺQIQϑΝΠϧʹจࣈྻͰ ϓϩάϥϜίʔυΛॻ͍͍ͯ͘͜ͱʹɻ μα͍
Ͱ࣮ࡍɺςϯϓϨʔτΤϯδϯͳΜ͔ͰΑ͘औΒΕͯΔํ๏ɻ
ԋࢉࢠΦʔόʔϩʔυ $ ͷDPVUl)FMMP8PSMEzFOEMͷͷͱ͜Ζɻ ͦͦจࣈྻͷՃࢉ͕ ͳͷTUSDBU ͷγϣʔτΧοτɻ 3VCZ 4DBMB ͪΐͬͱݶఆత͚ͩͲ1ZUIPO
ΦϒδΣΫτʹԋࢉࢠΛͬ ͨ࣌ͷڍಈΛఆٛͰ͖Δɻ +BWBจࣈྻͷՃࢉ͚ͩͯ͠ɺΧελϚΠζੑΛҙਤతʹഉআɻ 1)11ZUIPOʹࣅͯϚδοΫϝιου͕͋Δ͚ͲɺͰ͖ͳ͞+BWBͱಉ͡ ͙Β͍ɻϢʔβʔ͕Ͱ͖ΔͷQSPQͱQSPQͷϑοΫ͙Β͍ɻ
άϦʔϯεϨουͳඇಉظ*0 04ͷϚϧνεϨουΛΘͣɺݴޠॲཧܥͰฒߦॲཧɻ ཁ1SPNJTFΈ͍ͨͳΞϨɻ+BWB4DSJQUͱ1ZUIPOɺݴޠϨϕϧ ͰBTZODBXBJUΩʔϫʔυΛ࣋ͭɻ (Pશͯͷαϒϧʔνϯίʔϧʹ͓͍ͯɺ໌ࣔతͳBXBJUͳ͠Ͱ*0 ͪඇಉظΛαϙʔτɻ͔͠04ͷฒྻॲཧʹࣗಈόϥϯεɻ 1)1ͩͱ4XPPMF͕͍͚ۙͲɺ(Pඇಉظ*0ͷ؆୯͞ͱ҆શ͞Ͱ܈ Λൈ͍͍ͯΔɻ(PHSPVUJOFͷ%4-ͩͱࢥ͏ɻ
Πϛϡʔλϒϧͳม 1)1ͰɺΦϒδΣΫτͷϓϩύςΟʹSFBEPOMZࢦఆ͕૿͑ͨɻ ʜ͕ɺଟ͘ͷؔܕʹ͋ΔMFUɺ+BWB4DSJQUͷDPOTUͳ͍ɻ 1)1Ͱมͷ্ॻ͖Λ੍ݶͰ͖ͳ͍ˠͷͰؔͷείʔϓখ͞ ͘ดͯ͡Γ·͠ΐ͏ɻ 3VTUσϑΥϧτ͕ΠϛϡʔλϒϧͰɺՄมͳมʹNVUΛ͚ Δɻαϒߏ͕NVUͷͱ͖ɺʹNVU͕ײછ͢Δɻ )BTLFMMʮϞφυͰԿ͔Ͱ ʯ
TDBMBSܕ SFTPVSDFܕ JT@TDBMBS ͋ΔͷʹɺJOUcGMPBUcTUSJOHcCPPMΛ૯শ͢Δܕ͕ͳ͍ɻ Ͳ͏ͤͳΒJT@OVNFSJD ʹରԠ͢ΔOVNFSJDܕ͋ͬͯཉ͍͠ɻ DBMMBCMFͱJUFSBCMFͳΜͯ૯শ͋Δͷʹɻ GPQFO ͷΓʹରԠ͢ΔSFTPVSDFܕ͕ͳ͍ɻͳΜͰ͜͜NJYFE ͳΜͩ
ͬͯͳΔɻ Ұ؏ੑ͕ޙճ͠ʹͳͬͯ͠·͏ݴޠͩͱ͍͏ɻ
6'$4 6OJGPSN'VODUJPO$BMM4ZOUBYͷུɻҎԼͷͭಉ͡ҙຯ wBQQFOE EBUB Y wEBUBBQQFOE Y ͦͷ··ߴ֊ؔΕΔײ͡ͱɺϝιουνΣʔϯ͍͚ͯͦ͠͏ͳͷ
ͷɺͲͬͪͰॻ͍͍͍ͯͱ͍͏ΞΠσΞɻ%ݴޠͱ/JN͕࠾༻ɻ 1)1ͰEBUBBQQFOE ͰDBMMBCMFʹͳΔɻ ͱ͜ΖͰ/JNʜ
ίʔυهड़·ΘΓͷػೳ͕ඇৗʹڧ͍ /JN͚ͩͲɺଟଶੑ όϦΞϯτ Ͱ ։์ดݪଇΛຬͨͤͳ͍ IUUQT[FOOEFWUBOBLBIJTBUFSVBSUJDMFTBG l/JNɺʮ͠ΞϥϯɾέΠ͕ΦϒδΣΫτࢦͱݴΘͳ͔ͬͨΒʯ ͱ͍͏ྺ࢙ͷJGΛײͤͯ͘͡͞ΕΔݴޠͩͱࢥͬͨΛ͠·͢ɻ
࠷ڧͷ΄͛ݴޠ ͳΜ͔͋ΒΜͷ
ͱ͜ΖͰ1)1ͷ࡞ऀʜ ʮ1)1ࣃϒϥγʯ 1)1ࣃϒϥγ͘Β͍ڵฃʹ͢ ΔɻγϯϓϧͰɺຖ͏ศརͳಓ ۩ɻ͔ͩΒͲ͏ͨ͠ɻࣃϒϥγʹ ͍ͭͯॻΛړΔ͕͍ͭΔ͔ʁ
ͦΜͳࣃϒϥγɺͰܕ γεςϜ͕ڧԽ͞Ε͖ͯ·ͨ͠
͍ͬΆ͏ࢲʜ ઌݞγεςϜ͕յΕͯɺࣃϒϥγͷΑ͏ͳͷΛΠϯετʔϧ͠·ͨ͠
HJIZPKQ 1)1ͷੜΈͷɺϥεϚεɾϥʔυϑࢯΠϯλϏϡʔ IUUQTHJIZPKQOFXTSFQPSU z1)1πʔϧͰ͢ɻϋϯϚʔͷΑ͏ͳͷͰ͢ɻԿͷมͳ͍ಓ۩͚ͩΕ ͲɺͦΕΛͬͯ࡞ΒΕͨͷਓʑͷΒ͠Λม͖͑ͯ·ͨ͠ɻ zࣾձΛΓସ͑ͨͷϋϯϚʔΛ࡞ͬͨஉͰͳ͘ɺͦΕͰͷΛ࡞ͬͨ ਓʑͰ͢ɻϋϯϚʔΛͬͨਓʑͰ͢ɻ ˡલͷͰདྷͷͱ͖
ʮϓϩάϥϛϯά ݴޠ खஈʯ ୭͕ݴ͏͔Ͱ͍ͣͿΜҙຯ͕มΘͬͯ͘ΔΑͶ
ϓϩάϥϛϯά ઃܭ ӡ༻ମ੍ ࢿۚ܁Γ ϚʔέςΟϯά Ϣʔβʔαϙʔτ ΤϯυϢʔβʔ ϢʔβʔจԽ ࣾձৗࣝͷมԽ ίϯςϯπ
ίϛϡχέʔγϣϯ ੜ׆Πϯϑϥ σϕϩούʔจԽ γεςϜΠϯϑϥ Χϧνϟʔ ,ʙ.ഒͷ ਓޱنͷࠩ
ʮखஈͳΜͯςΩτʔͰ͍͍Αʯ ͱ୭ݴͬͯͳ͍ɻ
Ϋι࣮͕ؒҧͬͯ ചΕͯ͠·ͬͨྫ खஈภॏͷצҧ͍͕ ى͖ͨ։ൃͷ࿏ ͱ͍͑ɺͬͪ͜·ͩച্ Ͱࢧ͑Εٹ͍͕͋Δ ༧ࢉͷग़ॴͲ͜ʜ
ݴޠҰ؏ੑΑΓखஈɻ తͱ֓೦͕߹͑शಘ͙͢ɻ
͋ͷੈք࠷େऀͷݴޠʜ ྺ࢙తཧ༝ʹΑͬͯ࠷Ұ؏ੑ͕ࣦΘΕͨݴޠ ΠϯυɾϤʔϩούޠͷݯྲྀ ϰΝΠΩϯάͷ৵߈ έϧτจԽ ϑϥϯεͷҰ෦ ͩͬͨ࣌ ΩϦετڭ ϥςϯޠ ݹӳޠʹ໊ࢺҎ֎ͷ୯ޠʹ
֨ͷมԽ͕͋ͬͨɻϰΝΠΩ ϯά࣌ʹ୯७Խ͔ͨ͠ɻ ϑϥϯεޠͱϥςϯޠʹޠኮͷ ಛ͕େ෯ʹ৵ུ͞Εͨɻ ࣮ࡍͷൃԻͱҧ͏εϖϧΛ׆൛ ҹͯ͠͠·ͬͨɻ
खஈͱతΛຬͨ͢࠷దͳͷ ੈքʹͬͱෆࢥٞͳࣗવݴޠ w ؾީɾڥɾจԽʹΑͬͯɺ֓೦Λද͢୯ޠʹଟ͘ͷҧ͍͕͋Δɻ w ͨͱ͑ɺ৭Λද֓͢೦͕ʮനʯʮࠇʯʮʯ͔͠ͳ͍ݴޠ͕࣮ࡏ͢Δɻ w લޙࠨӈͱ͍ͬͨ૬ରతͳ͖Λද͢୯ޠΛ࣋ͨͳ͍ݴޠͷ෦͍Δɻ w ൴Βͷੜ͖ํʹ૬ରํͷ֓೦͕ొ͠ͳ͍ɻ͖Λৗʹ౦ೆͰೝࣝ
͍ͯͯ͠ɺͦΕͰશ͘ࠔ͍ͬͯͳͦ͞͏ɻ w ීวจ๏ ਓྨڞ௨ͷίΞ͕͋Δͱߟ͑ͨ νϣϜεΩʔઌੜͼͬ͘Γ
ʮͰ্ͳݴޠΛѻ͑Δͱɺଧ͍ͪͯ͜ਓ݄ ୯ՁऔΕΔͰ͠ΐʯͬͯ ͋ʔɺ͜ͷͰɺͦ͏͍͏ײ͔֮ͬ͢Γͳ ͘ͳͬͪΌ͍·ͨ͠Ͷɻ
༏ྼͰͳ͘ϑΟʔϧυͷҧ͍ͷཧղΛ ͜ͷຊͰհ͞Ε͍ͯΔݴޠ 3VCZ *P 1SPMPH 4DBMB &SMBOH $MPTVSF )BTLFMM
༁൛ɻ·ͩ+43VTU ͞Εͯͳ͔ͬͨࠒɻ$+BWBؚ·Ε ͳ͍͠ɺ4NBMMUBML1BTDBMͳ͍ɻͦ ΕΒΛؚΊΔͱͭ͡Όࡁ·ͳ͍ɻ ϑΟʔϧυΛݟۃΊͯదʹબͿͷɻ
Ͱ1)1ͷϑΟʔϧυ ༷ʑͳ׆༻ࣄྫΛ͜ͷΧϯϑΝϨϯε དྷ݄࠶དྷ݄ Ͱʹ͠·ͨ͠Ͷ ίϛϡχςΟͷ׆ൃ͞ϑΟʔϧυͷ͞Λද͠·͢ɻ ͜Ε͕ɺ1)1ӳޠͷΑ͏ͩͱݴΘΕΔॴҎͰ͢