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.3k
オートローディングでレガシー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
8.8k
BASE大規模リアーキテクチャリング / base_rearchitecturing
nazonohito51
17
12k
既存サービスに後からR/W Splittingライブラリを入れる時に考えたこと / r-w-splitting
nazonohito51
1
29k
社内勉強会でOOPとCleanArchitectureとDDDを勉強し始めたというお話
nazonohito51
7
5.1k
CakePHP2でもPhpStormがコード補完してくれるようにした話 / cakephp2-ide-helper
nazonohito51
1
2.3k
PHPStanでCustomRuleを作る / Make PHPStan CustomRule
nazonohito51
5
3.9k
単方向依存を実現する静的解析ライブラリのご紹介 / Analyze PHP Dependencies
nazonohito51
2
5.6k
「SOLIDの原則って何ですか?」って質問に答えたかった / What's SOLID principle
nazonohito51
5
1.9k
ドキュメントルート配下に全てのPHPファイルが置かれていた環境をindex.phpだけにした話 / document root
nazonohito51
1
3.7k
Other Decks in Programming
See All in Programming
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
260
Datadog DBMでなにができる? JDDUG Meetup#7
nealle
0
140
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
7
4.2k
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
150
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
160
技術を改善し続ける
gumioji
0
120
もう少しテストを書きたいんじゃ〜 #phpstudy
o0h
PRO
17
4k
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
270
複数のAWSアカウントから横断で 利用する Lambda Authorizer の作り方
tc3jp
0
120
もう僕は OpenAPI を書きたくない
sgash708
5
1.9k
CI改善もDatadogとともに
taumu
0
200
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
1
210
Featured
See All Featured
RailsConf 2023
tenderlove
29
1k
Code Review Best Practice
trishagee
67
18k
The Pragmatic Product Professional
lauravandoore
32
6.4k
GitHub's CSS Performance
jonrohan
1030
460k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
Side Projects
sachag
452
42k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Designing Experiences People Love
moore
140
23k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
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ΦʔτϩʔσΟϯάͯ͠ཧ͠Α͏ʂ
ΦʔτϩʔσΟϯάཧͷखஈ ࢄΒ͔ͬͨঢ়ଶ ཧ ͋Δ͖࢟
ͲΜͳߏʹ͢Εྑ͍ͷʁ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠