Laravelにおける後悔しないためのアプリケーション設計

66a86be239fea2303d0801990cdc13c7?s=47 localdisk
November 02, 2016

 Laravelにおける後悔しないためのアプリケーション設計

laravel.osaka 2016 で発表したものです。

66a86be239fea2303d0801990cdc13c7?s=128

localdisk

November 02, 2016
Tweet

Transcript

  1. Laravelʹ͓͚Δ ޙչ͠ͳ͍ͨΊͷ ΞϓϦέʔγϣϯઃܭ Laravel Osaka 2016 @localdisk

  2. ࣗݾ঺հ দඌେ ·͓ͭ·͞Δ EEE ΤϯδχΞ Πϊϕʔλʔδϟύϯॴଐ ΤϯδχΞɾσβ ΠφɾσΟϨΫλΛืूத  ޷ධൃചத

    @localdisk
  3. ืूͯ͠·͢ʂʂʂ

  4. ޙչ͠ͳ͍ΞϓϦέʔγϣϯઃܭ ͱ͸?

  5. όάΛग़͞ͳ͍།Ұͷํ๏͸ϓϩάϥϜΛॻ͔ͳ͍͜ͱͩ ʕϓϩάϥϚͷ֨ݴʕ

  6. ͦ͏͍͏Θ͚ʹ΋͍͔ͳ͍

  7. ݱ࣮͸ݫ͍͠

  8. ଥڠͯ͠ γϯϓϧ͞Λͨ΋ͭ

  9. • ޙչ͠ͳ͍ͨΊʹͲ͏͢Δ͔? • FacadeΛ߇͑ͯΈΔ • Named Routes • FormRequest •

    ControllerͰEloquentͷϝιουνΣΠϯېࢭ • Repository Pattern Agenda
  10. FacadeΛ߇͑ͯΈΔ

  11. • ੩తϝιουͷΑ͏ʹ࢖͑Δ • ࣮ࡍ͸αʔϏείϯςφ͔ΒऔΓग़͍ͯ͠Δ • Ͳ͔͜ΒͰ΋࢖͑Δ • ViewͷதͰ΋ • \Auth::check()

    • ݁ՌɺΫϥεͷ੹຿͕େ͖͘ͳΔ Facade ͸ศར͚ͩͲ…
  12. https://readouble.com/laravel/5.3/ja/facades.html#facade-class-reference DIΛ࢖͓͏

  13. ͳΔ΂͘ Contract ࢖͓͏ DIΛ࢖͓͏(2)

  14. • Facade Λ࢖͏͔ΘΓʹ DI Λ͢Δͱ࢖༻͢Δͱ ϝιουͷҾ਺ʹ࢖༻͢ΔΫϥε͕ฒͿ • ͋ɺ΍͹͍ɻͱΘ͔Δɻ • FacadeΛܦ༝͠ͳ͍ͷͰएׯૣ͘ͳΔ

    ͳͥ DI ͔?
  15. Named Routes

  16. • Routeʹ໊લΛ͚ͭΔ • route(‘osaka’); ͰURL͕औಘͰ͖Δ • URL͕มΘͬͯ΋҆৺ Named Routes

  17. FormRequest

  18. গͣͭ͠هड़ྔ͕ݮ͍ͬͯΔ ͔͠͠ϊΠζʹͳ͍ͬͯΔͷ͸൱Ίͳ͍ Validation ͷมભ

  19. • php artisan make:request Ϋϥε໊ • rulesϝιουΛ࣮૷ FormRequest

  20. • ControllerͰϝιουΠϯδΣΫγϣϯ͢Δ͚ͩ • ϊΠζ͕ফ͑ͯϩδοΫʹूதͰ͖Δ FormRequest

  21. ControllerͰEloquentͷ ϝιουνΣΠϯېࢭ

  22. Model Binding

  23. ʮಉ݁͡ՌΛAPIͰฦͤΔΑ͏ʹ͠ͱ͍ͯͶʯ ͱݴΘΕͨΒ…ʁ ControllerͰϝιουνΣΠϯ͸μϝʂ

  24. ModelʹΫΤϦΛด͡ࠐΊΔ

  25. Repository Pattern

  26. • Eloquent͸ User::find ͷΑ͏ʹ੩తʹݺ΂ ·͕͢ɺFacadeͰ͸ͳ͍ɻ • ΑͬͯshouldRecieveͱ͍͏ϝιου͸ଘࡏ͠ ͳ͍ • Eloquent͸DBʹґଘ͍ͯ͠Δ

    • ςετ͕ࠔΔ ͳͥ Repository Pattern?
  27. • ΠϯλʔϑΣʔεΛఆٛ Repository Patternͷ࡞Γํ

  28. • ΠϯλʔϑΣʔεΛ࣮૷ɻ͋ͱ͸ίϯτϩʔϥͰΠ ϯδΣΫγϣϯ͢Δ Repository Patternͷ࡞Γํ

  29. ࣭໰ͱ͔ʁ

  30. ͓ΘΓ