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
2k
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
May 10, 2024
Tweet
Share
More Decks by shin1x1
See All by shin1x1
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
3
1.7k
制約の力 - 状態を限定する -
shin1x1
4
4.5k
Apple Silicon Mac 時代の PHP 開発環境構築 2021 / php-dev-env-on-m1-mac-era
shin1x1
2
4.6k
Docker イメージのマルチアーキテクチャビルド / docker-muti-arch-build
shin1x1
1
460
Domain modeling with PHP / domain-modeling-with-php-en
shin1x1
0
230
ドメインをモデリングしてPHPコードに落とし込む / domain-modeling-with-php8
shin1x1
14
7.1k
PHP 8 で作る JSON パーサ / php8-json-parser
shin1x1
1
3.7k
Kubernetes で構築する PHP 開発環境 / php-development-environment-on-kubernetes
shin1x1
3
4.9k
独立したコアレイヤパターンの適用 - fortee 編 - / fortee-meets-independent-core-layer-pattern
shin1x1
0
3.6k
Other Decks in Programming
See All in Programming
.NETでOBS Studio操作してみたけど…… / Operating OBS Studio by .NET
skasweb
0
120
HTML/CSS超絶浅い説明
yuki0329
0
190
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
13
2.2k
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
1.4k
BEエンジニアがFEの業務をできるようになるまでにやったこと
yoshida_ryushin
0
200
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
170
Alba: Why, How and What's So Interesting
okuramasafumi
0
210
Androidアプリのモジュール分割における:x:commonを考える
okuzawats
1
280
DevFest - Serverless 101 with Google Cloud Functions
tunmise
0
140
AWSのLambdaで PHPを動かす選択肢
rinchoku
2
390
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
300
AppRouterを用いた大規模サービス開発におけるディレクトリ構成の変遷と問題点
eiganken
1
440
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
173
51k
GraphQLとの向き合い方2022年版
quramy
44
13k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Scaling GitHub
holman
459
140k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Gamification - CAS2011
davidbonilla
80
5.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
It's Worth the Effort
3n
183
28k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
230
52k
The Language of Interfaces
destraynor
155
24k
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ίϚϯυϓϩηε୯Ґͷ࣮ߦ