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
ログの設計してますか?PSR3とログ設計の話
Search
Ryo Tomidokoro
June 16, 2018
Programming
4.7k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ログの設計してますか?PSR3とログ設計の話
PHPカンファレンス福岡2018 #phpconfuk #hall_fu
Ryo Tomidokoro
June 16, 2018
More Decks by Ryo Tomidokoro
See All by Ryo Tomidokoro
あるアーキテクチャ決定と その結果/architecture-decision-and-its-result
hanhan1978
2
1.2k
開発者が知っておきたい複雑さの正体/where-the-complexity-comes-from
hanhan1978
8
3.6k
Spec Driven Development入門/spec_driven_development_for_learners
hanhan1978
2
1.9k
フロントエンドがTypeScriptなら、バックエンドはPHPでもいいじゃない/php-is-not-bad
hanhan1978
8
14k
どうすると生き残れないのか/how-not-to-survive
hanhan1978
17
15k
100分で本番デプロイ!Laravelで作るWebアプリケーション作成/100min_web_app_cicd
hanhan1978
1
270
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
8
3.7k
集中して作業する技術/how_to_work_deeply
hanhan1978
65
58k
PHPでデータベースを作ってみた/create-data-with-php
hanhan1978
11
11k
Other Decks in Programming
See All in Programming
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.6k
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
200
RTSPクライアントを自作してみた話
simotin13
0
610
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.2k
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
11
4.2k
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
140
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
700
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
250
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
270
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
790
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
120
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
470
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Fireside Chat
paigeccino
42
4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Designing Experiences People Love
moore
143
24k
Designing for Timeless Needs
cassininazir
1
260
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
The Curious Case for Waylosing
cassininazir
1
390
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
330
Transcript
*OOPWBUPS+BQBO*OD ॴ྄ &OHJOFFS ϩάͷઃܭͯ͠·͔͢ʁPSR3ͱϩάઃܭͷ PHPΧϯϑΝϨϯεԬ2018
͓Βͤ εϥΠυSpeakerDeckʹΞοϓ͠·͕͢… ࡱӨࣗ༝ʹ͍ͯͯ͋͠Γ·ͤΜ !IBOIBO
͜ͷτʔΫͷඪ एखΤϯδχΞ தݎΤϯδχΞ ˠϩάग़ྗʹ͍ͭͯͷ͡ΊͷҰา ˠυΩυΩͯ͠Β͏
ࠓճ͓͢Δϩάग़ྗ ΞϓϦέʔγϣϯϩά ߦಈϩάΣϒαʔόͷϩάର֎ ओॲཧʹӨڹΛ༩͑ͣɺόονΣϒΞϓϦ ͷॲཧ్தͰԿΒ͔ͷใΛ֎෦ʹग़ྗ͢Δ
ࠓճͷείʔϓ֎ͷ 'MVFOUE -PHTUBTI ϩάऩू ϩάՄࢹԽ ,JCBOB &MBTUJD4FBSDI
ಋೖ
ಋೖ ͋Δ
ಋೖ εϐʔσΟʔʹ WBS@EVNQ Λॻ͍ͨΓফͨ͠Γ͢ΔएखΛܸɻ
ಋೖ
ಋೖ
ಋೖ
ಋೖ ఆৗతͳͱ͔ͷνΣοΫ ϩάग़ྗͷ͕ศརΑͱ͑Δɻ
ಋೖ ·ͬͨ͘ϐϯͱདྷͯͳ͍ͷΛ؍ଌ
ಋೖ ϩάग़ྗʹ͍ͭͯतͤͶʂ
ಋೖ ࢥ͍ฦͯ͠ΈΔͱɻ ࣗϩάग़ྗͷํ๏ͱ͔शͬͨ͜ͱͳ͍ɻ งғؾͰग़ྗ͍ͯ͠Δʜ
ಋೖ ϩάग़ྗͷΞϨίϨΛ·ͱΊͯ νʔϜͷڞ௨ೝࣝΛ࡞Γ͍ͨ σόοάγεςϜӡ༻ʹ͓͚Δڧ͍ثʹͳΔ
0VUMJOF 8IBUJTMPHHJOH 8IZZPVMPH )PXZPVMPH 3JTLPGMPHHJOH 8IBUZPVTIPVMEQSFQBSF
0VUMJOF 8IBUJTMPHHJOH 8IZZPVMPH )PXZPVMPH 3JTLPGMPHHJOH 8IBUZPVTIPVMEQSFQBSF
ϩάग़ྗͱʁ -PHHJOHJTUIFBDUPGLFFQJOHBMPH -PHpMF8JLJQFEJB ใMPH ΛͲ͔͜ʹग़ྗ͢Δ͜ͱ ఆٛ؇͍ʜ
ϩάग़ྗʹؔΘΔ༷ 3'$ TZTMPHͷ༷͔͜͜Β৭ʑͱੜ 143 -PHHFS*OUFSGBDF
ϩάग़ྗʹؔΘΔ༷ 3'$ TZTMPHͷ༷͔͜͜Β৭ʑͱੜ 143 -PHHFS*OUFSGBDF 1)1FS.VTU3FBE
143ͷ֓ཁ ͭͷ༷ ͍ͷͰͥͻ࣮ࡍʹಡΜͰ΄͍͠ IUUQTXXXQIQpHPSHQTSQTS
143ͷ֓ཁ #BTJDT 3'$४ڌͭͷϩάϨϕϧ ͭͷग़ྗϝιου
ϩάϨϕϧͱʁ EFCVH JOGP OPUJDF XBSOJOH FSSPS DSJUJDBM BMFSU FNFSHFODZ ॏେ
ϩάϨϕϧͱʁ EFCVH JOGP OPUJDF XBSOJOH FSSPS DSJUJDBM BMFSU FNFSHFODZ -0(@-&7&-XBSOJOH
ग़ྗ͞Εͳ͍
143ͷ֓ཁ .FTTBHF ϝοηʔδTUSJOH͔@@UP4USJOH Λ࣮ͨ͠PCKFDU ͦ͏Ͱͳ͚ΕɺதΛTUSJOHʹΩϟετ ϝοηʔδิ
143ͷ֓ཁ $POUFYU DPOUFYUʹԿΛ͞Ε͍͔ͯͳΔྫ֎UISPX͠ ͳ͍ɻ·ͨFSSPSXBSOJOHOPUJDFग़͞ͳ͍ &YDFQUJPOΦϒδΣΫτAFYDFQUJPOAͱ͍͏LFZ ໊Ͱηοτ͢Δ
143ͷ֓ཁ )FMQFSDMBTTFTBOEJOUFSGBDF 1TS४ڌͷ-PHΫϥεɺΠϯλϑΣʔεɺτϨΠτ ͷઆ໌
0VUMJOF 8IBUJTMPHHJOH 8IZZPVMPH )PXZPVMPH 3JTLPGMPHHJOH 8IBUZPVTIPVMEQSFQBSF
Կނϩάग़ྗΛߦ͏ͷ͔ʁ QSJOUσόοά͡Όବͳͷ͔ʁ
QSJOUσόοά ൃݟతख๏ ώϡʔϦεςΟοΫ ݟ͕͍͍ͭͯΔݪҼͷߜࠐ 5SZ&SSPSͷͯͬͱΓૣ͍ํ๏
QSJOUσόοάͷ ࠶ݱੑʹ͍͠ QSJOUফ͠Ε ͖ͬ͞ॻ͍ͨWBS@EVNQ͏ແ͍ ͳΜ͔ը໘ͷࠨ্ʹग़ͯΔʜ
QSJOUσόοάͷ ಉ͜͡ͱͷ܁ฦ ຊ൪ڥͰແཧ -B[JOFTTҧͷ෮QSJOU WBS@EVNQग़ͤ·ͤΜʜ
QSJOUσόοάͷ ΞϓϦέʔγϣϯͷӨڹ QSJOUͱFYJUͷ߹ͤ 'SBNF8PSLͷऴॲཧΛ ։ൃڥʹ͓͍ͯɺ࠶ݱͮ͠Β͍ඍົͳόάΛੜΈग़͢
ϩάग़ྗͷಛ ࠶ݱੑ͕͋Δ ղੳతͳσόοά ઃஔՕॴৗʹಉ༷ʹϩάग़ྗ มߋʹΑΔࠩҟΛޙ͔ΒղੳՄೳ
͜Μͳ࣌ϩάग़ྗ ৗʹ֬ೝ͍ͨ͠ใ όονͷ࣮ߦใ ຊ൪ڥͰݟ͍ͨใ
ৗʹ֬ೝ͍ͨ͠ใ WJFXςϯϓϨʔτʹͨ͠ "1*ݺͼग़͠ͷ։࢝ɾऴྃ ࣮ߦͨ͠42-ͱύϥϝʔλ
ຊ൪ڥͰݟ͍ͨใ ։ൃڥͰ࠶ݱ͠ͳ͍ෆ۩߹ͷݕূϩά ߈ܸݕϩά -PHJO߈ܸ ܦྼԽ͕༧ଌ͞ΕΔՕॴͷܭଌϩά
όονͷ࣮ߦใ ։࢝࣌ؒɾऴྃ࣌ؒ "#&/%࣌ͷఀࢭՕॴ ॲཧ݅ ࠶࣮ߦίϚϯυ ͜ΕຊʹΦεεϝɻ
0VUMJOF 8IBUJTMPHHJOH 8IZZPVMPH )PXZPVMPH 3JTLPGMPHHJOH 8IBUZPVTIPVMEQSFQBSF
Ͳ͏ͬͯϩάग़ྗΛߦ͏ͷ͔ʁ 143४ڌՄೳͳϥΠϒϥϦʔ .POPMPH ;FOE-PHHFS ϑϨʔϜϫʔΫ͕ఏڙ͢ΔϩΨʔ ϩάΛૉʹग़ͤΔͳΒɺ143ඇ४ڌͰྑ͍
Ͳ͏ͬͯϩάग़ྗΛߦ͏ͷ͔ʁ ΦϨΦϨϩΨʔବ͔ʁ ษڧͷͨΊͷंྠͷ࠶ൃ໌0, Ͱຊ൪ར༻Ί·͠ΐ͏
Ͳ͏ͬͯϩάग़ྗΛߦ͏ͷ͔ʁ ੜͰFSSPS@MPHؔͱ͔/( ͨͩ͠ɺօʹ߹ͬͯͷ͕͋Δ͜ ͱࢲཧղ͍ͯ͠Δ ͍Θ͕ͣͳ ͔ΓΈ͕͋Δ
Ͳ͏ͬͯϩάग़ྗΛߦ͏ͷ͔ʁ ͓ߦّͷѱ͍ϩάग़ྗఫڈ͕جຊ ඃ͕গͳ͍͏ͪʹखΛଧ͍ͬͯ͜͏ ͱ͍͑ ͷϑΥʔϚοτͱ͔ͰϞχϣΓͨ͘ͳ͍
0VUMJOF 8IBUJTMPHHJOH 8IZZPVMPH )PXZPVMPH 3JTLPGMPHHJOH 8IBUZPVTIPVMEQSFQBSF
ϩάग़ྗͷϦεΫ ϩάग़ྗʹཱͭ ͨͩ͠ɺϦεΫΛ಄ʹೖΕ͓ͯ͘ ඞཁ͕͋Δ
ϦεΫ ใ࿙͍͑ ΞϓϦέʔγϣϯ࣮ߦͷ ϩάग़ྗͷઃఆϛε ҙਤ͠ͳ͍ݸਓใऩू
ใ࿙͍͑ εϥυ IUUQTTFDVSJUZTSBEKQTUPSZ
ྫ͑͜Μͳίʔυ %#Ͱύεϫʔυ҉߸Խͯͯ͠ແ͠
ΞϓϦέʔγϣϯ࣮ߦͷ Τϥʔൃੜ࣌ͷϩάΛϝʔϧૹ৴ όάϦϦʔεͰେྔͷΤϥʔϝʔϧ ϝʔϧૹ৴Ͱ٧·ͬͯʜ Τϥʔൃੜ࣌ͷϩάΛ4MBDLͰૹ৴ όάϦϦʔεͰSZ ·͞ʹΧΦε
ઃఆϛε EFCVHϩά͕ຊ൪Ͱग़ͬͺͳ͠ େͳྔͷϩάग़ྗ ΫΤϦύϥϝʔλʔʜ ૠೖɾߋ৽σʔλ͕શ෦࿙Ӯ͍ͯ͠ΔͷͱҰॹ
ઃఆϛε ϩάΛ༗ޮ׆༻͢Δ ϩάϨϕϧͷઃఆϛε͕க໋ই
ઃఆϛε ݟ͍ͨ࣌ʹϩά͕ͳ͍ ϦϦʔεͰϩάϑΝΠϧ͕ॻ όάमਖ਼ޙʹݕূෆՄೳ ϩάͷग़ྗઌΞϓϦσΟϨΫτϦ֎ʹ
ઃఆϛε Πϯϑϥͷ͓͡͞Μ ΞϓϦέʔγϣϯϩάकඋൣғ֎ ࣗͷࣗͰकΕ
ݸਓใ ݸਓใ͕ϩάʹग़ྗ͞Ε͍ͯΔ߹ (%13ͷേଇॏ͍ͨ ϓϥΠόγʔϙϦγʔͷهࡌʁ Ϣʔβ͕ಉҙͯ͠ͳ͍ར༻/(
ݸਓใ ҙਤͤͣʹߦಈϩάΛऩूͯ͠͠·͍ͬͯ ͳ͍͔ʁόϨͳ͚Εྑ͍ͱ͍͏Ͱ ͳ͍ɻ
ҙ͖ࣝ͢ॏཁࣄ߲ ϩάग़ྗͰ͍͔ͳΔσʔλ࿙ӮՄೳ ϩάϑΝΠϧͷةݥੑΛཧղ͍ͯ͠ͳ͍ͱॏେ ͳଛࣦΛҾ͖ى͜͢Մೳੑ ͍ͯ͠ΔΞϓϦಛʹҙ
͜͏͍͏ίʔυʹԠ͢ΔΑ͏ʹʂ ͍ใΛEFCVHҎ֎Ͱग़ྗ
͜͏͍͏ίʔυʹԠ͢ΔΑ͏ʹʂ ઃఆϛεͰҰൃπϞͦ͠͏ͳϩά
ͰͲ͏͠Ζͱʁ ͏ϩάͳΜͯग़ྗ͠ͳ͍΄͏͕ʜ ͦΕҰͭͷਖ਼ղͱͯ͠ΞϦ
0VUMJOF 8IBUJTMPHHJOH 8IZZPVMPH )PXZPVMPH 3JTLPGMPHHJOH 8IBUZPVTIPVMEQSFQBSF
ԿΛܾΊ͓͚͍͍ͯͷ͔ʁ ΞϓϦέʔγϣϯ։ൃ࣌ ΞϓϦέʔγϣϯӡ༻࣌ ͦΕͧΕͷܾΊ͝ͱϩάઃܭ
ΞϓϦέʔγϣϯ։ൃ࣌ͷܾΊ͝ͱ -PHHFSͷબఆ .FTTBHFͷϧʔϧ جຊػೳʹେࠩແ͍ͷͰɺঢ়گʹ߹Θͤͯॊೈʹɻ -PHHFS͍ͬͯΕେ·͔ͳϑΥʔϚοτ߹͍ͬͯΔ ·ͣ։ൃऀͤͰྑ͍͔
ΞϓϦέʔγϣϯ։ൃ࣌ͷܾΊ͝ͱ ڞ௨ग़ྗ༰ όονϩάͷग़ྗϑΥʔϚοτ 3FBENFʹॻ͍͓͍ͯͯ͋͛·͠ΐ͏ɻ ΫΤϦϩάɺWJFXύϥϝʔλ మ൘ͰཱͭͷͰ࡞Γ·͠ΐ͏ɻ
ΞϓϦέʔγϣϯӡ༻࣌ͷܾΊ͝ͱ ڥຖͷϩάϨϕϧ ϩάϑΝΠϧͷϩʔςʔγϣϯɺӬଓԽํ๏ ։ൃڥEFCVH ຊ൪ڥXBSOJOH ΞϓϦέʔγϣϯΤϯδχΞͷʂ ޙͰղੳͰ͖ΔΑ͏ʹ͓ͯ͘͜͠ͱ
ΞϓϦέʔγϣϯӡ༻࣌ͷܾΊ͝ͱ ϩάϨϕϧઃఆͷϑΣʔϧηʔϑ Ϗϧυ࣌ʹEFCVHϨϕϧͷϩάΛআ %*Ͱۭϩάग़ྗ࣮ʹସ ϩάग़ྗઌͱग़ྗํ๏ ϝʔϧ4MBDLϒϩοΩϯά͠ͳ͍ํ๏ ಉ͡༰ͷΤϥʔϩάͷग़ྗ੍
·ͣ࠷ݶ͔Β ग़དྷͨͯͷΞϓϦͰᘳΛࢦ͢ͷແཧ ΞϓϦͷϑΣʔζʹ߹ΘͤͯɺϦεΫͱ্ खʹௐ͍ͯ͘͜͠ͱ͕ॏཁ
·ͱΊ एखΤϯδχΞͷํ ϩάग़ྗΤϥʔͷݕͱղੳΛߦ͏ڧྗͳखஈ ࡞๏ʹͷͬͱΓͭͭੵۃతʹ׆༻͠·͠ΐ͏
·ͱΊ தݎΤϯδχΞͷํ ͋ͳͨͷΞϓϦέʔγϣϯͷϩάେৎͰ͔͢ʁ υΩυΩͯͨ͠Βਅͳӡ༻Λߟ͑·͠ΐ͏ɻ
ૉఢͳϩάग़ྗੜ׆Λʂ