Upgrade to Pro — share decks privately, control downloads, hide ads and more …

オートローディングでレガシーPHPと戦う

 オートローディングでレガシーPHPと戦う

属人的になってしまったディレクトリ構造をオートローディングを使って解決する、そんなお話です

B989cc865d53d8e26fdadac99727113c?s=128

Satoshi Kawashima

February 22, 2017
Tweet

Transcript

  1. ઒ౡܛ(.01FQBCP *OD !U@XBEB͞ΜΛғ͏ձ ΦʔτϩʔσΟϯάͰ ϨΨγʔ1)1ͱઓ͏

  2. ΤϯδχΞ ઒ౡܛ!CBSJF ຊࣾࣄۀ෦+6(&.νʔϜ IUUQOB[POPIJUPKVHFNKQ

  3. TDIPPͰ-BSBWFMͷतۀ࡞Γ·ͨ͠

  4. ϨΨγʔͳϓϩμΫτͰ ͜Μͳ͜ͱ͋Γ·ͤΜ͔ʁ

  5. class SuperHyperOreOreClass
 {
 private $sugoi;
 private $yabai;
 
 public function

    __construct()
 {
 $this->sugoi = 'sugoi';
 $this->yabai = 'yabai';
 }
 
 public function tyouYabai()
 {
 // ...
 }
 }
  6. ͦΕ ΋͏͋ΔΑ

  7. ͜Μͳ͜ͱ͋Γ·ͤΜ͔ʁ wಉ͡໾ׂͷΫϥεΛ͏͔ͬΓ΋͏ݸ࡞ͬͯ͠·ͬͨ wͱ͍͏͔ɺطʹͨ͘͞Μ͋Δ wطଘʹͲΜͳΫϥε͕͋Δͷ͔୳͢ͷ͕೉͍͠ wطଘͷࣅͨΑ͏ͳػೳΛ࣋ͭը໘Λ୳͢ wܦݧଇ͔Βݟ͚ͭΔ wޱ఻ͰͲΜͳ΋ͷ͕͋Δͷ͔఻͑ΒΕΔ

  8. ͲΜͳ໰୊ʁ wࠓͲΜͳΫϥε͕͋Δͷ͔෼͔Βͳ͍ wͲ͜ʹԿ͕͓͍ͯ͋Δͷ͔෼͔Βͳ͍ ΫϥεʢϑΝΠϧʣ͕ ੔ཧ੔಴͞Ε͍ͯͳ͍໰୊

  9. ͲΜͳ໰୊ʁ wͦͷΞϓϦέʔγϣϯΛΑ͘஌ͬͨਓ͔͠Θ͔Βͳ͍ߏ଄ w෦԰͕ࢄΒ͔͍ͬͯͯ΋ɺͦͷॅਓͳΒͲ͜ʹͳʹ͕͋Δͷ͔͍ͩ ͍ͨղ͍ͬͯΔঢ়ଶ

  10. ςετ͡Όແ͍͚ͲอकੑʹؔΘΔ wࣗಈςετͰΑ͘ϝϯςφϯε͞ΕͨΫϥεͰ΋ͦΕΛݟ͚ͭΔ͜ͱ ͕Ͱ͖ͳ͚Ε͹ɺ࠶࣮૷ͯ͠͠·͏ϦεΫ͕͋Δ wίʔυͷॏෳ͸όάͷൃੜݪҼʹͳΔ

  11. ੔ཧ੔಴࣌ͷ໰୊

  12. ϑΝΠϧύεʹґଘ͍ͯ͠Δ class Hoge
 {
 // ...
 } DMBTT+6(&.)PHFQIQ <?php
 


    require_once ‘class/JUGEM/Hoge.php’;
 
 // ... <?php
 
 require_once ‘Hoge.php’;
 
 // ... wϨΨγʔͳ1)1͸SFRVJSF@PODFͰϑΝΠϧͰಡΈࠐΈΛ͍ͯ͠Δ wϑΝΠϧύεΛม͑ΔͳΒίʔυ΋ม͑ͳ͍ͱ͍͚ͳ͍
  13. ΋͎ŵŧƄແཧɻ śŏŪƁőŪƄ͠ΐɻɻɻ

  14. 1)1ͷΦʔτϩʔσΟϯάͱ͸

  15. 1)1ͷΦʔτϩʔσΟϯάͱ͸ wΫϥεݺͼग़࣌͠ʹɺͦͷΫϥε͕ఆٛ͞Ε͍ͯΔϑΝΠϧΛࣗಈత ʹಡΈࠐΉ࢓૊Έ wࣄલʹΦʔτϩʔμΛొ࿥͓ͯ͘͠ͱɺະఆٛͷΫϥε͕ݺͼग़͞Ε ͨ࣌ʹΦʔτϩʔμ͔ΒϑΝΠϧύεΛղܾͯ͠୅ΘΓʹಡΈࠐΜͰ ͘ΕΔ

  16. ΦʔτϩʔσΟϯάͷϝϦοτ

  17. SFRVJSF@PODF஍ࠈ͔Βղ์͞ΕΔʁ

  18. /0

  19. ϑΝΠϧύε͔Βղ์͞ΕΔ

  20. ϑΝΠϧύε͔Βղ์͞ΕΔ wΫϥεͷ࣮ϑΝΠϧͷ৔ॴ͸Ͳ͏Ͱ΋ྑ͘ͳΔ wΦʔτϩʔμΛߋ৽͑͢͞Ε͹ϑΝΠϧ͸͍͘ΒͰ΋ಈ͔͍͍ͯ͠ ΦʔτϩʔσΟϯάͯ͠ɺ ੔ཧ੔಴Ͱ͖Δ؀ڥΛ੔͑Α͏

  21. ಋೖํ๏

  22. ಋೖํ๏ DPNQPTFSʹΦʔτϩʔμΛ࡞੒ͤ͞Δ શΤϯτϦϙΠϯτͰBVUPMPBEQIQΛಡΜͰɺίʔυશମʹΦʔτ ϩʔμΛڙڅ͢Δ Ϋϥε΁ͷSFRVJSF@PODFΛશͯ࡟আͯ͠ɺΦʔτϩʔμ͔ΒΫϥε Λڙڅ͢Δ wಉ໊Ϋϥε͕͋ͬͯҰݩԽ͕೉͍͠৔߹ɺSFRVJSF@PODFͦͷ··ʹ ͓͚ͯ͠͹ɺ΋ͱ΋ͱ࢖ͬͯͨΫϥε͕ͦͷ··࢖ΘΕΔ͸ͣ ͋ͱ͸ಈ͔͠์୊

  23. ஫ҙ఺ wΦʔτϩʔσΟϯά͞ΕΔͷ͸Ϋϥε͚ͩ wάϩʔόϧείʔϓΛ࢖͍ͬͯΔ৔߹͸ૣ͘Ϋϥεʹ෼͚͍ͯͩ͘͞

  24. ·ͱΊ

  25. ·ͱΊ w੔ཧ੔಴͞Ε͍ͯͳ͍؀ڥ͸໨తͷ΋ͷ͕ݟ͔ͭΒͣͲΜͲΜԚΕͯ ͍͘ wΦʔτϩʔσΟϯά͢ΔͱϑΝΠϧύε͔Βղ์͞ΕΔ wΦʔτϩʔσΟϯάͯ͠੔ཧ੔಴͠Α͏ʂ

  26. ΦʔτϩʔσΟϯά͸੔ཧ੔಴ͷखஈ ࢄΒ͔ͬͨঢ়ଶ ੔ཧ੔಴ ͋Δ΂͖࢟

  27. ͲΜͳߏ੒ʹ͢Ε͹ྑ͍ͷʁ

  28. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠