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.5k
BASE大規模リアーキテクチャリング / base_rearchitecturing
nazonohito51
17
13k
既存サービスに後からR/W Splittingライブラリを入れる時に考えたこと / r-w-splitting
nazonohito51
1
30k
社内勉強会でOOPとCleanArchitectureとDDDを勉強し始めたというお話
nazonohito51
7
5.4k
CakePHP2でもPhpStormがコード補完してくれるようにした話 / cakephp2-ide-helper
nazonohito51
1
2.5k
PHPStanでCustomRuleを作る / Make PHPStan CustomRule
nazonohito51
6
4.2k
単方向依存を実現する静的解析ライブラリのご紹介 / Analyze PHP Dependencies
nazonohito51
3
6k
「SOLIDの原則って何ですか?」って質問に答えたかった / What's SOLID principle
nazonohito51
6
2.1k
ドキュメントルート配下に全てのPHPファイルが置かれていた環境をindex.phpだけにした話 / document root
nazonohito51
2
4k
Other Decks in Programming
See All in Programming
SwiftUIで本格音ゲー実装してみた
hypebeans
0
510
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
290
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
190
Grafana:建立系統全知視角的捷徑
blueswen
0
240
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
160
AIコーディングエージェント(Manus)
kondai24
0
220
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
26k
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
160
Implementation Patterns
denyspoltorak
0
130
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
160
Cap'n Webについて
yusukebe
0
150
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
240
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.2k
Building an army of robots
kneath
306
46k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
130
WCS-LA-2024
lcolladotor
0
390
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
51
47k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
150
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
400
Designing Experiences People Love
moore
143
24k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
130
Side Projects
sachag
455
43k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Believing is Seeing
oripsolob
0
16
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ΦʔτϩʔσΟϯάͯ͠ཧ͠Α͏ʂ
ΦʔτϩʔσΟϯάཧͷखஈ ࢄΒ͔ͬͨঢ়ଶ ཧ ͋Δ͖࢟
ͲΜͳߏʹ͢Εྑ͍ͷʁ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠