Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
メイキング・オブ・PHPカンファレンス 〜PHPカンファレンス関西2024の運営スタッフが語る...
Search
SAW
May 10, 2024
Programming
0
140
メイキング・オブ・PHPカンファレンス 〜PHPカンファレンス関西2024の運営スタッフが語る舞台裏〜
PHPカンファレンス香川2024 前日祭の音響機材調整トークでの発表資料です。
SAW
May 10, 2024
Tweet
Share
More Decks by SAW
See All by SAW
React Hook Form と Zod によるフォームバリデーション
azuki
0
16
PHP で form-data を POST 以外のメソッドで受け取るには?
azuki
0
39
PHP で学ぶ OAuth 入門
azuki
2
770
EditorConfig を使ってみよう
azuki
1
89
Symfony でサクッと作る REST API サーバー
azuki
1
190
Vite の Library Mode を使って Vue のコンポーネントをライブラリ化する
azuki
1
260
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
2
330
Provide/Inject で TypeScript の恩恵を受ける方法
azuki
3
150
GraphQL はいいぞ! ~Laravel で学ぶ GraphQL 入門~
azuki
1
370
Other Decks in Programming
See All in Programming
sbt 2
xuwei_k
0
130
モダンJSフレームワークのビルドプロセス 〜なぜReactは503行、Svelteは12行なのか〜
fuuki12
0
170
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
6
2.8k
How Software Deployment tools have changed in the past 20 years
geshan
0
26k
「文字列→日付」の落とし穴 〜Ruby Date.parseの意外な挙動〜
sg4k0
0
340
JJUG CCC 2025 Fall Javaコミュニティの歩き方 〜参加から貢献まで、すべて教えます〜
takasyou
0
720
Module Harmony
petamoriken
2
590
Level up your Gemini CLI - D&D Style!
palladius
1
150
WebRTC と Rust と8K 60fps
tnoho
2
1.7k
connect-python: convenient protobuf RPC for Python
anuraaga
0
330
乱雑なコードの整理から学ぶ設計の初歩
masuda220
PRO
32
15k
なあ兄弟、 余白の意味を考えてから UI実装してくれ!
ktcryomm
10
10k
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Done Done
chrislema
186
16k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
69
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Practical Orchestrator
shlominoach
190
11k
The Cult of Friendly URLs
andyhume
79
6.7k
Automating Front-end Workflow
addyosmani
1371
200k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Building Applications with DynamoDB
mza
96
6.8k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Transcript
ϝΠΩϯάɾΦϒɾ1)1ΧϯϑΝϨϯε ʙ1)1ΧϯϑΝϨϯεؔͷӡӦελοϑ͕ޠΔཪʙ 1)1ΧϯϑΝϨϯε߳લࡇԻڹػࡐௐτʔΫ 4"8
$(whoami) w ࢯ໊Ճ౻फҰ ࡀ w ϋϯυϧωʔϜ4"8 w ؔͷ*5ΤϯδχΞίϛϡχςΟͷ͔͠୲ ࣗশ
w େࡕࡏॅɾѪग़ w 9 چ5XJUUFS !B[VLJ@FBUFS w 1)1ΧϯϑΝϨϯε࣮ؔߦҕһ
1)1ΧϯϑΝϨϯεͷࢀՃྺ 1)1ΧϯϑΝϨϯεࢀՃྺ ظؒ ࢀՃͨ͠ΧϯϑΝϨϯε උߟ 1)1$POGFSFODF+BQBO ΧϯϑΝϨϯεॳࢀՃ
1)1ΧϯϑΝϨϯεԬ ٱ͠ͿΓͷΦϑϥΠϯͷษڧձʹࢀՃ 1)1$POGFSFODF+BQBO ʙ 1)1ΧϯϑΝϨϯεւಓ 1)1ΧϯϑΝϨϯεؔ ίΞελοϑͱͯ͠ࢀՃ ʙ 1)1FS,BJHJ 1)1ΧϯϑΝϨϯεখాݪ )BQQZ#JSUIEBZ ʙ 1)1ΧϯϑΝϨϯε߳ ελοϑͱͯ͠ࢀՃ ˡΠϚίί
͓͠ͳ͕͖ w 1)1ΧϯϑΝϨϯεؔͷཪ w ϝΠΩϯάɾΦϒɾ1)1ΧϯϑΝϨϯεؔ w ӡӦελοϑࢹͷཪ w ΧϯϑΝϨϯεͷཪͷ༠͍
1)1ΧϯϑΝϨϯεؔͷཪ ϝΠΩϯάɾΦϒɾ1)1ΧϯϑΝϨϯεؔ
1)1ΧϯϑΝϨϯεؔͷ։࠵ςʔϚ w ؔ1)1ΤϯδχΞίϛϡχςΟͷ্ཱͪ͛ w ৽ͨͳίϛϡχςΟࢀըऀͷൃ۷ w ؔͰͷٕज़ڞ༗ͷΛग़ w ࣋ଓՄೳͳӡӦମ੍ w
։࠵ςʔϚΛ࣮ݱ͢ΔͨΊͷӡӦମ੍Λඋ ެࣜOPUFهࣄΑΓҾ༻
1)1ΧϯϑΝϨϯεؔͷελοϑ w 1)1ΧϯϑΝϨϯεؔͿΓͷ։࠵ w աڈͷ1)1ΧϯϑΝϨϯεؔͷελοϑ͕΄΅͍ͳ͍ w աڈͷ։࠵ϊϋ͕΄ͱΜͲड͚ܧ͕Ε͍ͯͳ͍ w ؔͷ1)1ίϛϡχςΟͷӡӦʹܞΘΔϝϯόʔ͕΄΅૯ೖΕସ͑
ελοϑͰͷνʔϜ͚ w ୲ൣғΛܾΊΔ͜ͱͰλεΫΛ୲ w جຊతʹνʔϜͷλεΫʹྗ w શମͷਐḿঢ়گͷ၆ᛌ࣮ߦҕһ͕୲ w ࣮ߦҕһͷෛ୲͕େ͖͔ͬͨ
νʔϜ͚ͱׂ 1)1ΧϯϑΝϨϯεؔͷνʔϜ͚ νʔϜ ֓ཁ εϙϯαʔνʔϜ εϙϯαʔͷืू͍߹ΘͤରԠ ࠾ొஃऀνʔϜ ొஃλΠϜςʔϒϧͷࡦఆ ҰൠࢀՃऀνʔϜ
νέοτൢച࠙ձͷख ϝσΟΞνʔϜ 4/4OPUFͳͲͷใ׆ಈ8FCαΠτͷ੍࡞ ಛผاըνʔϜ ໊ࡳ1)1FSγʔϧͷ࡞
1)1FSγʔϧ w 1)1ΧϯϑΝϨϯεؔͰͷۄاը w ࢀՃऀಉ࢜ͷަྲྀଅਐ͕త w γʔϧʹ9 چ5XJUUFS ΞΧϯτͷΞΠίϯ͕ҹ͞ΕΔ w
γʔϧͷσβΠϯςϯϓϨʔτʹΞΠίϯΛྲྀ͠ࠐΉεΫϦϓτΛ࣮ w σβΠϯͷ࡞ΛࣗಈԽͯ͠λεΫΛলྗԽ w ϊϕϧςΟͷதͰଟ͘ͷ༧ࢉ͕ඞཁ w 1)1FS,BJHJͷτϨʔσΟϯάΧʔυͷΞΠσΞ͔Βੜ 1)1FSγʔϧ
༧ࢉͱࢿۚௐୡ w εϙϯαʔ͕ू·Δ͔ͱ͍͏ෆ҆ w ͿΓͷ։࠵ʹग़ࢿͯ͘͠ΕΔεϙϯαʔ͕Ͳͷఔ͔ͭ͘ະ w εϙϯαʔ͔ΒௐୡͰ͖ͨग़ࢿֹ࣍ୈͰ༧ࢉΛΔඞཁ͕͋Δ w ݁ՌతʹϊϕϧςΟͳͲΛ४උ͢Δͷʹेͳࢿ͕ۚௐୡͰ͖ͨ w
εϙϯαʔνʔϜͷਚྗͱεϙϯαʔͷཧղͷ͓͔͛
τʔΫͷ࠾ํ๏ͷެ։ w τʔΫͷ࠾ํ๏ΛOPUFͰެ։ w ͲͷΑ͏ͳج४Ͱ࠾͞ΕΔ͔ΛࢀՃऀ͕Δ͜ͱ͕Ͱ͖Δ w ελοϑථͱࢀՃऀථʹج͍ͮͯܭࢉ͢Δ͜ͱͰ٬؍తʹ࠾
։࠵ͷ༷ࢠ w େ͖ͳτϥϒϧ͕ൃੜ͠ͳ͔ͬͨ w ແࣄʹେޭͰऴ͑ΒΕͨ w ໊Λ͑ΔࢀՃऀ͕དྷͨ͠ w ΧϯϑΝϨϯεॳࢀՃͷํଟ͔ͬͨ
1)1ΧϯϑΝϨϯεؔͷཪ ӡӦελοϑࢹͷཪ
ελοϑʹͳͬͨܦҢ w 1)1ΧϯϑΝϨϯεԬࢀՃޙʹ࣮ߦҕһͷ:,BOPI͞Μ͔Β ͓༠͍Λड͚Δ w :,BOPI͞ΜͱؔͷษڧձͰԿ͔͓ձ͍͍ͯͨ͠ w ษڧձʹొஃ͍ͯͨ͜͠ͱͰೝࣝͯ͠Β͍͓͑ͯͯ༠͍Λड͚ΒΕͨ w ྑ͍ػձͳͷͰελοϑʹͳΔ͜ͱΛܾҙ
w ΧϯϑΝϨϯεελοϑͷܦݧ%PKP$PO+BQBOͷΈ
ελοϑͱͯ͠ͷৼΓฦΓ w 1)1ΧϯϑΝϨϯεؔΛେޭʹऩΊΒΕͯຬײΛಘͨ w ΈΜͳͰ࡞Γ্͛ͨͱ͍͏ຬײ w ख୳ΓͰ४උ͖ͯͨ͠ͷΛޭͤ͞ΒΕͨͱ͍͏ຬײ w ελοϑಉ࢜Ͱͷឺ͕Ͱ͖ͨ w
ಛʹνʔϜͰڧ͘ײ͡ΒΕͨ w ࣍ճͷ։࠵ͷҙཉΘ͍ͨ w ࠓͷܦݧΛདྷͷ։࠵ʹ׆͔͍ͨ͠
ίΞελοϑͱͯ͠ͷۤ࿑ w جຊతʹॳΊͯ୲͢ΔλεΫ͕த৺Ͱख୳ΓͰ͜ͳͨ͠ w ໊ࡳͷҹۀऀΛબఆ͢ΔͨΊͷௐࠪ w ࠷ॳͦͦҹۀऀΛΒͳ͍ͨΊௐࠪେม w *MMVTUSBUPSͷMBZFSTͷจࣈԽ͚ʹ಄Λ·͞Εͨ w
ӳޠ൛ͩͱMBZFSTͷຊޠ͕จࣈԽ͚͢Δ w ӳޠ൛ΛΞϯΠϯετʔϧͯ͠ຊޠ൛ΛΠϯετʔϧ͢͜͠ͱͰղܾ w إൈ͖ύωϧͷ࡞͕։࠵िؒͰܾ·ͬͯٸ͍ͰରԠͨ͠ w ॳൃ༧ఆͩͬͨۀऀͰ։࠵·Ͱʹؒʹ߹Θͳ͍͜ͱ͕໌ w ଞͷελοϑͱڠྗͯ͠ผͷۀऀʹൃͯؒ͠ʹ߹Θͤͨ
νʔϜͷឺ w νʔϜͰຖिఆྫͷΦϯϥΠϯϛʔςΟϯάΛ։࠵ w λεΫͷਐḿঢ়گΛڞ༗ w ఆظతʹਐḿΛڞ༗͢Δ͜ͱͰνʔϜͷஂ͕݁ڧ·ͬͨ w ͦͷ΄͔ͷ࿈བྷ%JTDPSEͷςΩετνϟοτΛར༻ w
σβΠϯͷൃґཔҹۀऀͷೖߘσʔλͷϨϏϡʔΛґཔ w ෆ໌ͳͲΛؾܰʹ֬ೝͰ͖ͨ
ελοϑۀΛ௨ͯ͡ಘΒΕͨऩ֭ w ແࣄʹΧϯϑΝϨϯεΛେޭʹऩΊͨ͜ͱͰࣗ৴͕͍ͭͨ w ϊϕϧςΟͷҹʹ͍ͭͯͷݟΛಘͨ w ৗͷۀੜ׆ͰΔػձ͕ͳ͔ͬͨ w ಉ͡ελοϑͷ͕ؒͰ͖ͨ w
དྷελοϑ͢Δͱ͖͜ͷϝϯόʔͰελοϑΛΓ͍ͨͱࢥ͑ͨ w ੵۃతʹࣗͷҙݟΛൃݴͰ͖ΔΑ͏ʹͳͬͨ
ΧϯϑΝϨϯεͷཪͷ༠͍
ελοϑͷັྗ w ීஈͰ͖ͳ͍ܦݧΛੵΊΔ w ໊ࡳͳͲͷϊϕϧςΟͷ࡞ൃ w ΧϯϑΝϨϯεͷ։࠵ʹߩݙͰ͖Δ w ελοϑʹͳΔ͜ͱ͕৽ͨͳަྲྀͷػձΛಘΒΕΔ w
ΧϯϑΝϨϯεΛ࡞Δ͕ؒͰ͖Δ w ӡӦελοϑͱ͍͏ݞॻ͖Λ໊ΕΔ w ӡӦελοϑͱ͍͏ڹ͖͕Χοί͍͍
ཪͷޠΛ͙ w ·ͣཪͷޠͷొਓʹͳΔ w ۙͰ։࠵͞ΕΔΧϯϑΝϨϯεͷελοϑͷԠื͕͓͢͢Ί w ཧతʹ͍ۙͱؾܰʹࢀՃ͍͢͠ w ࣗͷׂʹैͬͯ४උӡӦͷλεΫΛ͜ͳ͢ w
ͬͯΈ͍ͨ͜ͱ͕͋ΕੵۃతʹࢀՃͯ͠ΈΔ w ຬΛ࣋ͯ͠։࠵Λܴ͑Δ w ఆ֎ͷτϥϒϧ͕ى͖ͯ߄ͯͣελοϑͷؒͱղܾʹऔΓΉ
ίΞελοϑ͔ελοϑ͔ w ͲͪΒॴͱॴ͕͋Δ w ࣗʹ߹͍ͦ͏ͳํΛબͿ w ະܦݧͰελοϑԠืେܴ w ୭Ͱ࠷ॳॳ৺ऀ w
ະܦݧͰίΞελοϑʹԠืͯ͠ͳ͍
ελοϑͷछྨͷॴͱॴ ελοϑͷछྨ ॴ ॴ ίΞελοϑ w ͱʹཪͷޠΛ͙ؒΛ࡞Γ͍͢ w اըͳͲͷΞΠσΞΛ࣮ݱͰ͖ΔՄೳੑ͕͋Δ
w ࣄલ४උͳͲͷ͕࣌ؒඞཁ ελοϑ w ࣄલ४උ͕΄ͱΜͲෆཁͳͷͰ࣌ؒͷ߆ଋ͕গͳ͍ w ͷΈͷۀͳͷͰࢀՃϋʔυϧ͍ w ελοϑͱަྲྀͰ͖ΔػձগͳΊ
ελοϑͱͯ͠ͷ৺ߏ͑ w ݞͷྗΛൈ͍ͯؾָʹࢀՃ͢Δ w ͋͘·Ͱ༗ࢤͷू·ΓͳͷͰॏ͘ߟ͑Δඞཁͳ͍ w ಉ͡ελοϑͷؒͨͪͱλεΫΛָ͠Ή w ࢀՃऀͱڞʹྑ͍ΧϯϑΝϨϯεΛ࡞Δ
·ͱΊ w 1)1ΧϯϑΝϨϯεΧϯϑΝϨϯεؔͷཪΛհ w ΧϯϑΝϨϯεελοϑͷັྗΛઆ໌
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠