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コードの実行モデルを理解する / Understanding-the-PHP-Execu...
Search
shin1x1
May 10, 2024
Programming
2
2.8k
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
May 10, 2024
Tweet
Share
More Decks by shin1x1
See All by shin1x1
抽象化という思考のツール - 開発現場での活用 - / Abstraction-as-a-Tool-for-Thinking-in-dev
shin1x1
0
100
抽象化という思考のツール - 理解と活用 - / Abstraction-as-a-Tool-for-Thinking
shin1x1
1
1.1k
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
6
3.6k
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
3
2.2k
制約の力 - 状態を限定する -
shin1x1
6
5.4k
Apple Silicon Mac 時代の PHP 開発環境構築 2021 / php-dev-env-on-m1-mac-era
shin1x1
2
4.8k
Docker イメージのマルチアーキテクチャビルド / docker-muti-arch-build
shin1x1
1
510
Domain modeling with PHP / domain-modeling-with-php-en
shin1x1
1
290
ドメインをモデリングしてPHPコードに落とし込む / domain-modeling-with-php8
shin1x1
15
7.3k
Other Decks in Programming
See All in Programming
iOS 17で追加されたSubscriptionStoreView を利用して5分でサブスク実装チャレンジ
natmark
0
430
エンジニアとして高みを目指す、 利益を生み出す設計の考え方 / design-for-profit
minodriven
23
11k
CSC509 Lecture 03
javiergs
PRO
0
320
ネイティブ製ガントチャートUIを作って学ぶUICollectionViewLayoutの威力
jrsaruo
0
110
あなたの知らない「動画広告」の世界 - iOSDC Japan 2025
ukitaka
0
310
Repenser les filtres API Platform: une nouvelle syntaxe
vinceamstoutz
2
150
(Extension DC 2025) Actor境界を越える技術
teamhimeh
1
120
麻雀点数計算問題生成タスクから学ぶ Single Agentの限界と Agentic Workflowの底力
po3rin
5
2k
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
7
1.4k
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
170
Advance Your Career with Open Source
ivargrimstad
0
210
フロントエンド開発に役立つクライアントプログラム共通のノウハウ / Universal client-side programming best practices for frontend development
nrslib
7
3.8k
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Invisible Side of Design
smashingmag
301
51k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
RailsConf 2023
tenderlove
30
1.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
237
140k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
600
Typedesign – Prime Four
hannesfritz
42
2.8k
GitHub's CSS Performance
jonrohan
1032
460k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Transcript
1)1ΧϯϑΝϨϯε߳ !TIJOY 1)1ίʔυͷ࣮ߦϞσϧΛཧղ͢Δ
D .BTBTIJ4IJOCBSB!TIJOY !TIJOY ৽ݪʢ͠ΜΒʣխ࢘ େࡕͰ8FCγεςϜ։ൃٕज़αϙʔτΛߦ͍ͬͯ·͢ wCMPH IUUQTCMPHTIJOYDPN w1PEDBTU1)1ͷݱ IUUQTQIQHFOCBTIJOYDPN
D .BTBTIJ4IJOCBSB!TIJOY ͡Ίʹ 👉͜ͷࢿྉެ։͠·͢ 👉࣮ߦϞσϧΛͬ͘͟ΓΠϝʔδͯ͘͜͠ͱ͕త આ໌Λ؆ུԽ͍ͯͨ͠Γলུ͍ͯ͠ΔՕॴ͕͋Γ·͢ 👉ײɺϑΟʔυόοΫ͓͍ͪͯ͠·͢ʂ QIQDPOLBHBXBPSGPSUFFϑΟʔυόοΫϖʔδ
D .BTBTIJ4IJOCBSB!TIJOY "HFOEB w 1)1ίʔυͷ࣮ߦϞσϧ w QIQGQN NPE@QIQ ͷ࣮ߦϞσϧ w
QIQίϚϯυͷ࣮ߦϞσϧ
D .BTBTIJ4IJOCBSB!TIJOY 1)1ίʔυͷ࣮ߦϞσϧ
D .BTBTIJ4IJOCBSB!TIJOY 1)1ίʔυͷ࣮ߦ 1)1 <?php echo date("Y-m-d"); 2024-05-11 1)1ίʔυΛ࣮ߦ͢Δʹ1)1͕ඞཁ
D .BTBTIJ4IJOCBSB!TIJOY 1)1ίʔυͷ࣮ߦ 1)1ϑΝΠϧ ίϯύΠϧ ΦϖίʔυΛ࣮ߦ 1)1 Φϖίʔυ 1)1ίʔυ͔ΒΦϖίʔυΛੜ࣮ͯ͠ߦ
D .BTBTIJ4IJOCBSB!TIJOY Φϖίʔυ w 1)1͕࣮ߦ͢Δ໋ྩ όΠφϦσʔλʢ͜͜ͰจࣈྻͰදݱʣ w 1)1࣌Ͱݸͷ໋ྩ͕͋Δ w Φϖίʔυྫ
"%%ʢՃࢉʣ 46#ʢݮࢉʣ &$)0ʢग़ྗFDIPจʣ
D .BTBTIJ4IJOCBSB!TIJOY 1)1ίʔυͷ࣮ߦ <?php echo date("Y-m-d"); INIT_FCALL 1 96 string("date")
SEND_VAL string("Y-m-d") V0 = DO_ICALL ECHO V0 1)1ίʔυ Φϖίʔυ */*5@'$"--࣮ؔߦએݴ 4&/%@7"-Ҿηοτ %0@*$"--࣮ؔߦ &$)0Λग़ྗ ίϯύΠϧ
D .BTBTIJ4IJOCBSB!TIJOY 1)1ίʔυͷ࣮ߦ <?php echo date("Y-m-d H:i:s"); INIT_FCALL 1 96
string("date") SEND_VAL string("Y-m-d H:i:s") V0 = DO_ICALL ECHO V0 1)1ίʔυ Φϖίʔυ ࣮ߦ 2024-05-11 ࣮ߦ݁Ռ
D .BTBTIJ4IJOCBSB!TIJOY 2ͲͪΒ͕ޮతʁ <?php echo "Hello\n"; 1)1ίʔυ Φϖίʔυ ίϯύΠϧ BQIQ
Hello CQIQ BQIQ CQIQ
D .BTBTIJ4IJOCBSB!TIJOY "ͲͪΒಉ͡Φϖίʔυ <?php echo "Hello\n"; 0000 ECHO string("Hello ")
1)1ίʔυ Φϖίʔυ ίϯύΠϧ BQIQ Hello CQIQ 0000 ECHO string("Hello ") BQIQ CQIQ
D .BTBTIJ4IJOCBSB!TIJOY ଞͷ1)1ϑΝΠϧͷ࣮ߦ w Φϖίʔυ*/$-6%&@03@&7"-Λ࣮ߦ͢Δ Φϖίʔυ࣮ߦ͔࣌͠ଞͷ1)1ϑΝΠϧΛίϯύΠϧͰ͖ͳ͍ Φϖίʔυ࣮ߦίϯύΠϧ࣮ߦΛ܁Γฦ͢ w */$-6%&@03@&7"-Λੜ͢Δ1)1໋ྩ w
JODMVEFJODMVEF@PODF w SFRVJSFSFRVJSF@PODF w FWBMʢจࣈྻ͔ΒͷίϯύΠϧɺ࣮ߦʣ w Φʔτϩʔμ্ه໋ྩΛݺΜͰ͍Δ
D .BTBTIJ4IJOCBSB!TIJOY FY-BSBWFMHFU@JODMVEFE@GJMFT Ϣʔβίʔυ࣮ߦલʹϑΝΠϧҎ্ΛίϯύΠϧ
D .BTBTIJ4IJOCBSB!TIJOY QIQGQNͷ࣮ߦϞσϧ
D .BTBTIJ4IJOCBSB!TIJOY 1)1࣮ߦڥ w 1)1ͷओͳ࣮ߦڥ QIQGQNʢ4"1*GQNDHJʣ'BTU$(*αʔό NPE@QIQʢ4"1*BQBDIFIBOEMFSʣ"QBDIFIUUQEϞδϡʔϧ QIQίϚϯυʢ4"1*DMJʣɿίϚϯυϥΠϯ w ίΞίϯϙʔωϯτಉ͕ͩ͡ར༻ํ๏͕ҟͳΔ
w QIQGQNͱNPE@QIQࣅ࣮ͨߦϞσϧ
D .BTBTIJ4IJOCBSB!TIJOY )551ϦΫΤετॲཧͷྲྀΕ OHJOY QIQGQN )551 4 'BTU$(* (&5OPXQIQ QBUIUPOPXQIQ
OPXQIQΛ࣮ߦ Content-type: text/html; charset=UTF-8 2024-05-04
D .BTBTIJ4IJOCBSB!TIJOY QIQGQNϦΫΤετϥΠϑαΠΫϧ OHJOY 1)1ϑΝΠϧΛ ίϯύΠϧɺ࣮ߦ 1)1ͷΛഁغ ίϯύΠϧ݁ՌΛഁغ QIQGQN */$-6%&@03@&7"-͕͋Ε܁Γฦ͢
ϦΫΤετ։࢝ίϯύΠϧ͔Β࢝·Δ ࣮ߦίϯςΫετϦΫΤετ୯Ґ
D .BTBTIJ4IJOCBSB!TIJOY QIQGQN࣮ߦϞσϧͷಛ w ϦΫΤετίϯςΫετ͔͠ͳ͍ άϩʔόϧมΫϥεมϦΫΤετͰͷΈڞ༗ࣄނ͕ى͜Γʹ͍͘ w ঢ়ଶΛ͞ͳ͍ ӡ༻ָ͕ʢΥʔϜΞοϓෆཁɺεέʔϧΠϯΞτ͕༰қͳͲʣ w
ϦΫΤετຖʹ1)1ϑΝΠϧΛίϯύΠϧ ͦΕͰ࣮༻తͳͰಈ࡞͢Δ1)1ʂ 01DBDIFͰίϯύΠϧ݁ՌΛΩϟογϡͯ͠վળՄೳ IUUQTXXXQIQOFUPQDBDIF
D .BTBTIJ4IJOCBSB!TIJOY QIQGQN։ൃͰͷߟ͑ํ w ίʔυΛॻ্͘ͰͷϕετϓϥΫςΟεมΘΒͳ͍ มͷείʔϓΛඞཁ࠷ݶʹ͢Δ ෆཁͱͳͬͨϦιʔεղ์ w ϦΫΤετ͕ಠཱ͍ͯ͠Δ͜ͱ҆શஔ w
ಈ࡞ΛѲ͢Δ্Ͱͷϕʔεͱͯ͠ཧղ͢Δ
D .BTBTIJ4IJOCBSB!TIJOY QIQίϚϯυͷ࣮ߦϞσϧ
D .BTBTIJ4IJOCBSB!TIJOY QIQίϚϯυ࣮ߦϞσϧ QIQίϚϯυ QIQ ϓϩηεऴྃ࣌ʹΫϦΞ ࣮ߦίϯςΫετϓϩηε୯Ґ 1)1ϑΝΠϧΛίϯύΠϧɺ࣮ߦ */$-6%&@03@&7"-͕͋Ε܁Γฦ͢
D .BTBTIJ4IJOCBSB!TIJOY QIQίϚϯυ࣮࣌ؒߦ͢Δͷҙ w άϩʔόϧมΫϥεมͳͲڞ༗͞ΕΔ w Ϧιʔεղ์໌ࣔతʹඞཁ ϝϞϦϦʔΫͳͲɺϦΫΤετ୯ҐͰʹͳΒͳ͍͕ɺ࣮࣌ؒߦͰݦࡏԽ ͢Δ͜ͱ w
ϦΫΤετ୯Ґͷ࣮ߦϞσϧ͕લఏʹͳ͍ͬͯΔ͜ͱ͕ଟ͍ ϓϩάϥϚͷϝϯλϧϞσϧ 044ͷϑϨʔϜϫʔΫϥΠϒϥϦ δϣϒΩϡʔͷϫʔΧʔ 4XPPMF3FBDU1)1Λར༻ͨ͠ 8FCΞϓϦέʔγϣϯͳͲ
D .BTBTIJ4IJOCBSB!TIJOY ·ͱΊ
D .BTBTIJ4IJOCBSB!TIJOY ·ͱΊ w 1)1ίʔυίϯύΠϧ͞ΕɺΦϖίʔυΛ࣮ߦ w ଞͷ1)1ϑΝΠϧ࣮ߦ࣌ʹϑΝΠϧͮͭίϯύΠϧ w QIQGQN NPE@QIQ
ϦΫΤετ୯Ґͷ࣮ߦ w QIQίϚϯυϓϩηε୯Ґͷ࣮ߦ