Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PHPでCQRS+ES入門
Search
Akinori Takigawa
January 14, 2026
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHPでCQRS+ES入門
Akinori Takigawa
January 14, 2026
More Decks by Akinori Takigawa
See All by Akinori Takigawa
Nginxになりきって、FCGIでPHPと喋ろう
akinoriakatsuka
0
120
PHPUnitのテストイベントを使ってテストにかかる時間の計測をしよう
akinoriakatsuka
0
230
パイプ演算子の実装を 覗いてみよう
akinoriakatsuka
0
330
手軽に作れる電卓を作って イベントソーシングに親しもう CQRS+ESカンファレンス2026
akinoriakatsuka
0
1.1k
Rubyで作る物理エンジン - 叡電LT
akinoriakatsuka
0
54
パイプ演算子の実装を覗いてみよう - 【非公式】PHPカンファレンス福岡2025・前日Meetup
akinoriakatsuka
0
62
技術的負債の会計学 - PHPカンファレンス広島2025
akinoriakatsuka
8
1.7k
スクラムをちゃんとやる勇気
akinoriakatsuka
0
77
キャリアを拓く! 登壇のススメ - PHPカンファレンス関西アフターパーティー in スマレジ
akinoriakatsuka
1
170
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
620
Docker and Python
trallard
47
4.2k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
550
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
Typedesign – Prime Four
hannesfritz
42
3.2k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
260
Transcript
͖͋ 1)1Ͱ$234 &4ೖ ୈճؔ1)1ษڧձQIQLBOTBJ
୍ ܒلʢ27ࡀʣ ͖͋ X: @aki_artisan גࣜձࣾϥϯϓʢژʣ PHPer εΫϥϜϚελʔ ઃܭʹڵຯ͕͋Δ ը૾ɿPHPerKaigi
͓͜ͱΘΓ w $234ෳࡶʹͳΓ͕ͪͳͷͰɺ͏ͷ৻ॏʹ w ·ͩࢲ࣮ફೖͨ͜͠ͱͳ͍Ͱ͢ʜ w ࣮ࡍʹಈ͍͍ͯΔͷΛΈͯɺಓ۩ശʹ͠·͓ͬͯ͘͘Β͍ͷԹײΛਪ w গͳ͘ͱɺ#&"34VOEBZ"EWFOU$BMFOEBSͷ෦࡞ΛಡΜͰ͔Β ࣮ફ͢ΔͷΛ͓קΊ͠·͢
$234ͱ w ίϚϯυɾΫΤϦ w ΦϒδΣΫτΛঢ়ଶมߋΛߦ͏ίϚϯυͱΛฦ͢ΫΤϦʹׂ͢Δ w ίϚϯυͱΫΤϦʹඞཁͳϞσϧͦΕͧΕੑ࣭͕ҟͳΔ w ίϚϯυ߹ੑ͕อূ͞Εͨਖ਼͍͠ঢ়ଶ͕ඞཁ w
ΫΤϦܗ͞Εͨσʔλˠ༻్ʹԠͯ͡ෳͷϞσϧ͕͋ͬͯྑ͍
$234ͱ (SFH:PVOHͷྫ $VTUPNFS4FSWJDF WPJE.BLF$VTUPNFS1SFGFSSFE $VTUPNFS*E $VTUPNFS(FU$VTUPNFS $VTUPNFS*E $VTUPNFS4FU(FU$VTUPNFST8JUI/BNF
/BNF $VTUPNFS4FU(FU1SFGFSSFE$VTUPNFST WPJE$IBOHF$VTUPNFS-PDBMF $VTUPNFS*E /FX-PDBMF WPJE$SFBUF$VTUPNFS $VTUPNFS WPJE&EJU$VTUPNFS%FUBJMT $VTUPNFS%FUBJMT $VTUPNFS8SJUF4FSWJDF WPJE.BLF$VTUPNFS1SFGFSSFE $VTUPNFS*E WPJE$IBOHF$VTUPNFS-PDBMF $VTUPNFS*E /FX-PDBMF WPJE$SFBUF$VTUPNFS $VTUPNFS WPJE&EJU$VTUPNFS%FUBJMT $VTUPNFS%FUBJMT $VTUPNFS3FBE4FSWJDF $VTUPNFS(FU$VTUPNFS $VTUPNFS*E $VTUPNFS4FU(FU$VTUPNFST8JUI/BNF /BNF $VTUPNFS4FU(FU1SFGFSSFE$VTUPNFST IUUQTXFCBSDIJWFPSHXFCIUUQDPEFCFUUFSDPNHSFHZPVOHDRSTUBTLCBTFEVJTFWFOUTPVSDJOHBHI
ิɿϞσϧͬͯԿʁͱࢥͬͨํ XFC͞Μͷࢿྉ͕Θ͔Γ͍͢ IUUQTTQFBLFSEFDLDPNXFCXIBUJTNPEFM
&4ͱ w Πϕϯτιʔγϯά w Πϕϯτʢग़དྷࣄʣΛ།Ұͷਅ࣮ͷݯʢιʔεʣͱ͢Δ͜ͱ w Πϕϯτաڈܗ w $234ͱ૬ੑ͕ྑ͍ w
ίϚϯυूʹର͢Δʢۀ্ҙຯͷ͋ΔʣΠϕϯτͱͯ͠දݱ͢Δͱ ཧ͍͢͠
&4ͱ w ूʹର͢ΔΠϕϯτ͕͍ͬͯΔͱ#*ͷΑ͏ͳੳ͕͍͢͠ w ࠷৽ͷঢ়ଶ͚͔͍ͩͬͯ͠ͳ͍ͱੳͰ͖ͳ͍ ސ٬*% ୲ऀ໊ εςʔλε ϑΥϩʔΞοϓ࣌
ాதଠ ࡁ ླՖࢠ ऴྃ ࢁాࡾ ஊ༧ఆ ࠤ౻थ ৽ن
(SPVQ$IBUʹର͢ΔΠϕϯτ w$SFBUFE w%FMFUFE w3FOBNFE w.FNCFS"EEFE w.FNCFS3FNPWFE w.FTTBHF1PTUFE w.FTTBHF&EJUFE w.FTTBHF%FMFUFE (SPVQ$IBU
.FNCFS .FTTBHF ू
ߏͷ֓೦ਤ 8SJUF.PEFM ΠϕϯτετΞ 3FBE.PEFM ϦʔυϞσϧ Ξοϓσʔλ σʔλϕʔε ίϚϯυ ΫΤϦ มߋ௨
Ө
ίϚϯυଆʢॻ͖ࠐΈϞσϧʣ w Ϣʔβʔ͔ΒίϚϯυʢ㲈ҙਤʣΛड͚औΔ w ࢦఆ͞Εͨ*%ͰूΛ෮ݩ w ίϚϯυͷద༻ΛࢼΈΔ w υϝΠϯϧʔϧͷݕূ w
ޭͨ͠ΒΠϕϯτΛΠϕϯτετΞʹه
ϦʔυϞσϧΞοϓσʔλ w ΠϕϯτετΞʹΠϕϯτ͕Ճ͞ΕͨͷΛࢹͯ͠ɺ ϦʔυϞσϧΛߋ৽͢Δ w ˣΠϕϯτΛड͚औͬͯߦ͏ॲཧͷྫ public function renameGroupChat(string $id,
string $name): void { $stmt = $this->pdo->prepare( 'UPDATE group_chats SET name = :name, updated_at = NOW() WHERE id = :id' ); $stmt->execute([ 'id' => $id, 'name' => $name, ]); }
ΫΤϦଆʢಡΈऔΓϞσϧʣ w ϦʔυϞσϧͷݱࡏͷঢ়ଶΛΫΤϦ͢ΔͷΈ w มߋߦΘͳ͍
αϯϓϧͷϦϙδτϦ w ඦฉҰݟʹ͔ͣ w IUUQTHJUIVCDPNBLJOPSJBLBUTVLBDRSTFTFYBNQMFQIQ
·ͱΊ w ॻ͖ࠐΈଆͱಡΈࠐΈଆͷϞσϧΛ͚Δͷ͕$234 w ूͷঢ়ଶΛΠϕϯτͷੵΈ্͛Ͱಋग़͢Δͷ͕&4 w ٕज़తʹෳࡶ͕ͩɺঢ়ଶભҠΛࡉ͔͘ੳ͍ͨ͠߹ʹ༗ޮ w ॻ͖ࠐΈϞσϧɺಡΈऔΓϞσϧɺϦʔυϞσϧΞοϓσʔλͰߏ͞ΕΔ
ࢀߟࢿྉ w 1FLLP$234&WFOU4PVSDJOHશ։ൃΨΠυʢ͔ͱ͡ΎΜ͞Μʣ w IUUQTUFDICPPLQSFDFOBDPKQFOUSZQFLLPDRSTFTHVJEF w $234ΛΊ͙Δೋͭͷੈք؍ʢLPSJZN͞Μʣ w IUUQTRJJUBDPNLPSJZNJUFNTFEGFE w
ϞσϧͱԿ͔ʢͳͳ͏͐Ϳ͞Μʣ w IUUQTTQFBLFSEFDLDPNXFCXIBUJTNPEFM
ࢀߟࢿྉ w ʰυϝΠϯۦಈઃܭΛ͡ΊΑ͏ʱʢ7MBE,IPOPOPWʣ w IUUQTXXXPSFJMMZDPKQCPPLT w ষ࣌ؒ࣠ͰϞσϧΛ࡞Δ w ίϚϯυɾΫΤϦ