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.5k
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
6
3.4k
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
3
2.1k
制約の力 - 状態を限定する -
shin1x1
5
5.2k
Apple Silicon Mac 時代の PHP 開発環境構築 2021 / php-dev-env-on-m1-mac-era
shin1x1
2
4.7k
Docker イメージのマルチアーキテクチャビルド / docker-muti-arch-build
shin1x1
1
490
Domain modeling with PHP / domain-modeling-with-php-en
shin1x1
1
270
ドメインをモデリングしてPHPコードに落とし込む / domain-modeling-with-php8
shin1x1
15
7.3k
PHP 8 で作る JSON パーサ / php8-json-parser
shin1x1
2
3.8k
Kubernetes で構築する PHP 開発環境 / php-development-environment-on-kubernetes
shin1x1
3
5k
Other Decks in Programming
See All in Programming
💎 My RubyKaigi Effect in 2025: Top Ruby Companies 🌐
yasulab
PRO
1
130
Babylon.js 8.0のアプデ情報を 軽率にキャッチアップ / catch-up-babylonjs-8
drumath2237
0
120
Spring gRPC で始める gRPC 入門 / Introduction to gRPC with Spring gRPC
mackey0225
2
430
Perplexity Slack Botを作ってAI活用を進めた話 / AI Engineering Summit プレイベント
n3xem
0
350
從零到一:搭建你的第一個 Observability 平台
blueswen
0
300
コード書くの好きな人向けAIコーディング活用tips #orestudy
77web
3
240
Rails産でないDBを Railsに引っ越すHACK - Omotesando.rb #110
lnit
1
150
型付け力を強化するための Hoogle のすゝめ / Boosting Your Type Mastery with Hoogle
guvalif
1
250
Use Perl as Better Shell Script
karupanerura
0
680
実践ArchUnit ~実例による検証パターンの紹介~
ogiwarat
1
200
少数精鋭エンジニアがフルスタック力を磨く理由 -そしてAI時代へ-
rebase_engineering
0
150
〜可視化からアクセス制御まで〜 BigQuery×Looker Studioで コスト管理とデータソース認証制御する方法
cuebic9bic
3
310
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
106
19k
The Invisible Side of Design
smashingmag
299
50k
GitHub's CSS Performance
jonrohan
1031
460k
Optimizing for Happiness
mojombo
378
70k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Fontdeck: Realign not Redesign
paulrobertlloyd
84
5.5k
The World Runs on Bad Software
bkeepers
PRO
68
11k
It's Worth the Effort
3n
184
28k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
770
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ίϚϯυϓϩηε୯Ґͷ࣮ߦ