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と戦う
Search
Satoshi Kawashima
February 22, 2017
Programming
3
1.4k
オートローディングでレガシーPHPと戦う
属人的になってしまったディレクトリ構造をオートローディングを使って解決する、そんなお話です
Satoshi Kawashima
February 22, 2017
Tweet
Share
More Decks by Satoshi Kawashima
See All by Satoshi Kawashima
モジュラモノリスにおけるトランザクション設計の考え方 / transaction design on modular monolith
nazonohito51
16
9.3k
BASE大規模リアーキテクチャリング / base_rearchitecturing
nazonohito51
18
13k
既存サービスに後からR/W Splittingライブラリを入れる時に考えたこと / r-w-splitting
nazonohito51
1
30k
社内勉強会でOOPとCleanArchitectureとDDDを勉強し始めたというお話
nazonohito51
7
5.3k
CakePHP2でもPhpStormがコード補完してくれるようにした話 / cakephp2-ide-helper
nazonohito51
1
2.5k
PHPStanでCustomRuleを作る / Make PHPStan CustomRule
nazonohito51
6
4.1k
単方向依存を実現する静的解析ライブラリのご紹介 / Analyze PHP Dependencies
nazonohito51
3
5.9k
「SOLIDの原則って何ですか?」って質問に答えたかった / What's SOLID principle
nazonohito51
6
2.1k
ドキュメントルート配下に全てのPHPファイルが置かれていた環境をindex.phpだけにした話 / document root
nazonohito51
2
3.9k
Other Decks in Programming
See All in Programming
社会人になっても趣味開発を続けたい! / traPavilion
mazrean
1
100
bootcamp2025_バックエンド研修_WebAPIサーバ作成.pdf
geniee_inc
0
140
Vueのバリデーション、結局どれを選べばいい? ― 自作バリデーションの限界と、脱却までの道のり ― / Which Vue Validation Library Should We Really Use? The Limits of Self-Made Validation and How I Finally Moved On
neginasu
2
1.6k
Pythonに漸進的に型をつける
nealle
1
130
Catch Up: Go Style Guide Update
andpad
0
260
Go言語はstack overflowの夢を見るか?
logica0419
0
620
alien-signals と自作 OSS で実現する フレームワーク非依存な ロジック共通化の探求 / Exploring Framework-Agnostic Logic Sharing with alien-signals and Custom OSS
aoseyuu
2
720
Cursorハンズオン実践!
eltociear
2
1.2k
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
2
110
あなたとKaigi on Rails / Kaigi on Rails + You
shimoju
0
190
オープンソースソフトウェアへの解像度🔬
utam0k
17
3.2k
スキーマ駆動で、Zod OpenAPI Honoによる、API開発するために、Hono Takibiというライブラリを作っている
nakita628
0
330
Featured
See All Featured
Designing for Performance
lara
610
69k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Writing Fast Ruby
sferik
630
62k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
930
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
354
21k
It's Worth the Effort
3n
187
28k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Mobile First: as difficult as doing things right
swwweet
225
10k
Transcript
ౡܛ(.01FQBCP *OD !U@XBEB͞ΜΛғ͏ձ ΦʔτϩʔσΟϯάͰ ϨΨγʔ1)1ͱઓ͏
ΤϯδχΞ ౡܛ!CBSJF ຊࣾࣄۀ෦+6(&.νʔϜ IUUQOB[POPIJUPKVHFNKQ
TDIPPͰ-BSBWFMͷतۀ࡞Γ·ͨ͠
ϨΨγʔͳϓϩμΫτͰ ͜Μͳ͜ͱ͋Γ·ͤΜ͔ʁ
class SuperHyperOreOreClass { private $sugoi; private $yabai; public function
__construct() { $this->sugoi = 'sugoi'; $this->yabai = 'yabai'; } public function tyouYabai() { // ... } }
ͦΕ ͏͋ΔΑ
͜Μͳ͜ͱ͋Γ·ͤΜ͔ʁ wಉׂ͡ͷΫϥεΛ͏͔ͬΓ͏ݸ࡞ͬͯ͠·ͬͨ wͱ͍͏͔ɺطʹͨ͘͞Μ͋Δ wطଘʹͲΜͳΫϥε͕͋Δͷ͔୳͢ͷ͕͍͠ wطଘͷࣅͨΑ͏ͳػೳΛ࣋ͭը໘Λ୳͢ wܦݧଇ͔Βݟ͚ͭΔ wޱͰͲΜͳͷ͕͋Δͷ͔͑ΒΕΔ
ͲΜͳʁ wࠓͲΜͳΫϥε͕͋Δͷ͔͔Βͳ͍ wͲ͜ʹԿ͕͓͍ͯ͋Δͷ͔͔Βͳ͍ ΫϥεʢϑΝΠϧʣ͕ ཧ͞Ε͍ͯͳ͍
ͲΜͳʁ wͦͷΞϓϦέʔγϣϯΛΑͬͨ͘ਓ͔͠Θ͔Βͳ͍ߏ w෦͕ࢄΒ͔͍ͬͯͯɺͦͷॅਓͳΒͲ͜ʹͳʹ͕͋Δͷ͔͍ͩ ͍ͨղ͍ͬͯΔঢ়ଶ
ςετ͡Όແ͍͚ͲอकੑʹؔΘΔ wࣗಈςετͰΑ͘ϝϯςφϯε͞ΕͨΫϥεͰͦΕΛݟ͚ͭΔ͜ͱ ͕Ͱ͖ͳ͚Εɺ࠶࣮ͯ͠͠·͏ϦεΫ͕͋Δ wίʔυͷॏෳόάͷൃੜݪҼʹͳΔ
ཧ࣌ͷ
ϑΝΠϧύεʹґଘ͍ͯ͠Δ class Hoge { // ... } DMBTT+6(&.)PHFQIQ <?php
require_once ‘class/JUGEM/Hoge.php’; // ... <?php require_once ‘Hoge.php’; // ... wϨΨγʔͳ1)1SFRVJSF@PODFͰϑΝΠϧͰಡΈࠐΈΛ͍ͯ͠Δ wϑΝΠϧύεΛม͑ΔͳΒίʔυม͑ͳ͍ͱ͍͚ͳ͍
͎ŵŧƄແཧɻ śŏŪƁőŪƄ͠ΐɻɻɻ
1)1ͷΦʔτϩʔσΟϯάͱ
1)1ͷΦʔτϩʔσΟϯάͱ wΫϥεݺͼग़࣌͠ʹɺͦͷΫϥε͕ఆٛ͞Ε͍ͯΔϑΝΠϧΛࣗಈత ʹಡΈࠐΉΈ wࣄલʹΦʔτϩʔμΛొ͓ͯ͘͠ͱɺະఆٛͷΫϥε͕ݺͼग़͞Ε ͨ࣌ʹΦʔτϩʔμ͔ΒϑΝΠϧύεΛղܾͯ͠ΘΓʹಡΈࠐΜͰ ͘ΕΔ
ΦʔτϩʔσΟϯάͷϝϦοτ
SFRVJSF@PODFࠈ͔Βղ์͞ΕΔʁ
/0
ϑΝΠϧύε͔Βղ์͞ΕΔ
ϑΝΠϧύε͔Βղ์͞ΕΔ wΫϥεͷ࣮ϑΝΠϧͷॴͲ͏Ͱྑ͘ͳΔ wΦʔτϩʔμΛߋ৽͑͢͞ΕϑΝΠϧ͍͘ΒͰಈ͔͍͍ͯ͠ ΦʔτϩʔσΟϯάͯ͠ɺ ཧͰ͖ΔڥΛ͑Α͏
ಋೖํ๏
ಋೖํ๏ DPNQPTFSʹΦʔτϩʔμΛ࡞ͤ͞Δ શΤϯτϦϙΠϯτͰBVUPMPBEQIQΛಡΜͰɺίʔυશମʹΦʔτ ϩʔμΛڙڅ͢Δ ΫϥεͷSFRVJSF@PODFΛશͯআͯ͠ɺΦʔτϩʔμ͔ΒΫϥε Λڙڅ͢Δ wಉ໊Ϋϥε͕͋ͬͯҰݩԽ͕͍͠߹ɺSFRVJSF@PODFͦͷ··ʹ ͓͚ͯ͠ɺͱͱͬͯͨΫϥε͕ͦͷ··ΘΕΔͣ ͋ͱಈ͔͠์
ҙ wΦʔτϩʔσΟϯά͞ΕΔͷΫϥε͚ͩ wάϩʔόϧείʔϓΛ͍ͬͯΔ߹ૣ͘Ϋϥεʹ͚͍ͯͩ͘͞
·ͱΊ
·ͱΊ wཧ͞Ε͍ͯͳ͍ڥతͷͷ͕ݟ͔ͭΒͣͲΜͲΜԚΕͯ ͍͘ wΦʔτϩʔσΟϯά͢ΔͱϑΝΠϧύε͔Βղ์͞ΕΔ wΦʔτϩʔσΟϯάͯ͠ཧ͠Α͏ʂ
ΦʔτϩʔσΟϯάཧͷखஈ ࢄΒ͔ͬͨঢ়ଶ ཧ ͋Δ͖࢟
ͲΜͳߏʹ͢Εྑ͍ͷʁ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠