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
1
2.4k
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
May 10, 2024
Tweet
Share
More Decks by shin1x1
See All by shin1x1
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
5
890
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
3
1.9k
制約の力 - 状態を限定する -
shin1x1
4
4.8k
Apple Silicon Mac 時代の PHP 開発環境構築 2021 / php-dev-env-on-m1-mac-era
shin1x1
2
4.6k
Docker イメージのマルチアーキテクチャビルド / docker-muti-arch-build
shin1x1
1
480
Domain modeling with PHP / domain-modeling-with-php-en
shin1x1
0
250
ドメインをモデリングしてPHPコードに落とし込む / domain-modeling-with-php8
shin1x1
14
7.2k
PHP 8 で作る JSON パーサ / php8-json-parser
shin1x1
1
3.8k
Kubernetes で構築する PHP 開発環境 / php-development-environment-on-kubernetes
shin1x1
3
5k
Other Decks in Programming
See All in Programming
Devin入門と最近のアップデートから見るDevinの進化 / Introduction to Devin and the Evolution of Devin as Seen in Recent Update
rkaga
9
4.3k
AtCoder Heuristic First-step Vol.1 講義スライド
terryu16
3
1.1k
gen_statem - OTP's Unsung Hero
whatyouhide
1
190
Vibe Codingをせずに Clineを使っている
watany
16
5k
リアルタイムレイトレーシング + ニューラルレンダリング簡単紹介 / Real-Time Ray Tracing & Neural Rendering: A Quick Introduction (2025)
shocker_0x15
1
270
家族・子育て重視/沖縄在住を維持しながらエンジニアとしてのキャリアをどのように育てていくか?
ug
0
260
AWS で実現する安全な AI エージェントの作り方 〜 Bedrock Engineer の実装例を添えて 〜 / how-to-build-secure-ai-agents
gawa
5
390
マルチアカウント環境での、そこまでがんばらない RI/SP 運用設計
wa6sn
0
680
AHC 044 混合整数計画ソルバー解法
kiri8128
0
320
Building a macOS screen saver with Kotlin (Android Makers 2025)
zsmb
1
110
パスキーのすべて / 20250324 iddance Lesson.5
kuralab
0
140
PsySHから紐解くREPLの仕組み
muno92
PRO
1
540
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
4 Signs Your Business is Dying
shpigford
183
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
GitHub's CSS Performance
jonrohan
1030
460k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
17
1.1k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
51
2.4k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
177
52k
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ίϚϯυϓϩηε୯Ґͷ࣮ߦ