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
17
9.2k
BASE大規模リアーキテクチャリング / base_rearchitecturing
nazonohito51
18
13k
既存サービスに後からR/W Splittingライブラリを入れる時に考えたこと / r-w-splitting
nazonohito51
1
29k
社内勉強会でOOPとCleanArchitectureとDDDを勉強し始めたというお話
nazonohito51
7
5.3k
CakePHP2でもPhpStormがコード補完してくれるようにした話 / cakephp2-ide-helper
nazonohito51
1
2.4k
PHPStanでCustomRuleを作る / Make PHPStan CustomRule
nazonohito51
6
4k
単方向依存を実現する静的解析ライブラリのご紹介 / Analyze PHP Dependencies
nazonohito51
3
5.8k
「SOLIDの原則って何ですか?」って質問に答えたかった / What's SOLID principle
nazonohito51
6
2k
ドキュメントルート配下に全てのPHPファイルが置かれていた環境をindex.phpだけにした話 / document root
nazonohito51
2
3.9k
Other Decks in Programming
See All in Programming
Claude Code と OpenAI o3 で メタデータ情報を作る
laket
0
110
ZeroETLで始めるDynamoDBとS3の連携
afooooil
0
150
Workers を定期実行する方法は一つじゃない
rokuosan
0
140
可変性を制する設計: 構造と振る舞いから考える概念モデリングとその実装
a_suenami
10
1.5k
SwiftでMCPサーバーを作ろう!
giginet
PRO
2
220
202507_ADKで始めるエージェント開発の基本 〜デモを通じて紹介〜(奥田りさ)The Basics of Agent Development with ADK — A Demo-Focused Introduction
risatube
PRO
6
1.4k
構文解析器入門
ydah
7
2k
実践 Dev Containers × Claude Code
touyu
1
120
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
1
230
「次に何を学べばいいか分からない」あなたへ──若手エンジニアのための学習地図
panda_program
3
710
Strands Agents で実現する名刺解析アーキテクチャ
omiya0555
1
110
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
440
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
GitHub's CSS Performance
jonrohan
1031
460k
Agile that works and the tools we love
rasmusluckow
329
21k
Making Projects Easy
brettharned
117
6.3k
The Invisible Side of Design
smashingmag
301
51k
Balancing Empowerment & Direction
lara
1
530
A Modern Web Designer's Workflow
chriscoyier
695
190k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
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ΦʔτϩʔσΟϯάͯ͠ཧ͠Α͏ʂ
ΦʔτϩʔσΟϯάཧͷखஈ ࢄΒ͔ͬͨঢ়ଶ ཧ ͋Δ͖࢟
ͲΜͳߏʹ͢Εྑ͍ͷʁ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠