Slide 1

Slide 1 text

LaravelͷFat ControllerΛͲ͏ ϦϑΝΫλ͍͔ͯ͘͠

Slide 2

Slide 2 text

3 LaravelͰͷϦϑΝΫλํ਑ Agenda 2 ϓϩδΣΫτͷ໰୊఺ 1 ࣗݾ঺հ 4 ϦϑΝΫλ಺༰

Slide 3

Slide 3 text

1 ࣗݾ঺հ

Slide 4

Slide 4 text

4 ࣗݾ঺հ ◆໊લ ླ໦ ޹೭(Suzuki Takayuki) ◆ࣗݾ঺հ ɾ1990೥ɺਆಸ઒ݝੜ·Εɻ ɾࣾձਓʹͳ͔ͬͯΒɺϓϩάϥϛϯάΛ࢝ΊΔɻ ɾ2015೥ʹϑϧεϐʔυʹೖࣾ͠ɺ2017೥ʹϑϦʔϥ ϯεΛ΍ͬͨޙʹ2017೥11݄ʹԭೄͰىۀɻ ◆झຯ ίεϓϨɺԻָϥΠϒɺϚϥιϯେձʹग़Δɺ໺ٿ؍ ઓ ◆Twitter @kanbo0605

Slide 5

Slide 5 text

Copyright Re:Build.inc All Rights Reserved. ࣗݾ঺հ 1

Slide 6

Slide 6 text

Copyright Re:Build.inc All Rights Reserved. ձࣾ঺հ 1 ◆ձ໊ࣾ גࣜձࣾRe:Build ◆ॅॴ ԭೄݝಹ೼ࢢٱໜ஍2-2-2 λΠϜεϏϧ ◆ࣄۀ಺༰ ɾࣗࣾWEBαʔϏεͷاըɾ։ൃɻ ɾडୗ։ൃ ◆ࣾһ 10໊ ◆ΤϯδχΞͷಇ͖ํ ϦϞʔτϫʔΫՄೳͳࣗ༝ͳಇ͖ํΛਪ঑ͯ͠·͢ʂ

Slide 7

Slide 7 text

Copyright Re:Build.inc All Rights Reserved. ࣗݾ঺հ 1

Slide 8

Slide 8 text

Copyright Re:Build.inc All Rights Reserved. ࣗݾ঺հ 1

Slide 9

Slide 9 text

Copyright Re:Build.inc All Rights Reserved. 9 ɾαʔϏε໊ Tadoru
 https://tadoru.work/
 
 ɾγεςϜ֓ཁ ΤϯδχΞಛԽܕͷ ϦϑΝϥϧ Ϋϥ΢υιʔγϯά 1 ձࣾ঺հ

Slide 10

Slide 10 text

Copyright Re:Build.inc All Rights Reserved. 1 0 ɾαʔϏε໊ Re:Build Boot Camp
 https://rebuild-bootcamp.jp/
 
 ɾ֓ཁ ԭೄͱٶ࡚Ͱʮ࣮຿ϨϕϧʯΛ໨ ࢦ͢ํ޲͚ͷϓϩάϥϛϯάε Ϋʔϧ ɾ࢖͏ٕज़ LaravelɺVue.jsͳͲ 1 ձࣾ঺հ

Slide 11

Slide 11 text

Copyright Re:Build.inc All Rights Reserved. 11 ࣮຿Ϩϕϧ ॳ৺ऀ ॳڃऀ ஍ํͷॳ৺ऀ޲͚ͷϓϩάϥ ϛϯάεΫʔϧΛଔۀͨ͠ޙ ͷॳڃऀ͔Β࣮຿Ϩϕϧ·Ͱ ͷؒΛຒΊΔεΫʔϧ 1 ձࣾ঺հ

Slide 12

Slide 12 text

1 2 ͜ͷൃදͷର৅ऀ ɾLaravelΛ࣮຿Ͱ࢖͍࢝Ίͨਓ ɾϓϩδΣΫτ͕େ͖͘ͳ͖ͬͯͯɺίʔυͷ੔ཧͰ೰ΜͰ͍Δਓ ɾϓϩδΣΫτͰίʔσΟϯάن໿͕ͳͯ͘ࠔ͍ͬͯΔ

Slide 13

Slide 13 text

2 ϓϩδΣΫτͷ໰୊఺

Slide 14

Slide 14 text

1 4 2 ϓϩδΣΫτͷ໰୊఺ ɾ͓ͦΒ͘ɺJavaग़਎ͷLaravelॳ৺ऀΛ͔͖ूΊ ͨঢ়ଶ ɾίʔυϨϏϡʔແ͠ ɾίʔσΟϯάن໿ແ͠ ɾಈ͚͹ྑ͍΍ঢ়ଶ ɾ΄΅࢓༷ॻແ͠

Slide 15

Slide 15 text

1 5 2 ίʔυͷओͳ໰୊఺ Կ͔ҰͭίʔυΛ͍ͬͨ͡ΒɺσάϨ͠΍͍͢δΣ ϯΨঢ়ଶ ɾPHPUnitͷςετ͕Ұͭ΋ͳ͍ ɾϚδοΫφϯόʔ͕େྔʹ࢖ΘΕ͍ͯΔ ɾifจͷωετ(5ॏͱ͔) ɾ਺ࣈ͕stringͱnumberͰೖͬͯ͘Δ ɾఆ਺͕΄΅࢖ΘΕ͍ͯͳ͍ ɾSQL͕௚ॻ͖

Slide 16

Slide 16 text

3 LaravelͰͷϦϑΝΫλํ਑

Slide 17

Slide 17 text

1 7 Fat Controller ͱ͸ʁ ɾFatControllerʢଠͬͨίϯτϩʔϥʣͷ͜ͱͰ͢ɻͳΜͰଠΔ͔ͱݴ͏ͱ୲͏੹຿͕ଟ͍ ͔ΒͰ͢ɻྫ͑͹ɺԼهͷΑ͏ͳཧ༝͕ߟ͑ΒΕ·͢ɻ ɾෳ਺ͷϝιουͰॲཧ͕ॏෳ͍ͯ͠Δɻ ɾ୯७ʹΞΫγϣϯϝιου͕ଟ͍ɻ ɾϩδοΫ͕ଟ͗͢Δɻ ɾͻͱͭͷมߋ͕ଞͷ෦෼ʹٴ΅͢ӨڹΛݕ஌ͮ͠Β͍ঢ়ଶʹ͋Δ

Slide 18

Slide 18 text

1 8 Fat Controller͸ԿͰྑ͘ͳ͍ͷ͔ʁ ɾControllerͷ੹຿ͷൣғ֎ͷॲཧ΋ೖ͖ͬͯͯ͠·͏ɻ Controllerͷ੹຿͸ - ೖྗʢHTTPϦΫΤετʣΛड͚औΓɺνΣοΫ͢Δ - ద੾ͳॲཧܥ΁஋Λ౉͢ - ϨεϙϯεΛฦ͢ ͷ̏ͭͱݴΘΕ͍ͯ·͢ɻ ɾҰͭҰͭͷॲཧ͕௕ͯ͘ɺॲཧΛ௥͏ͷ͕೉͍͠ɻ ɾॲཧͷॏෳ͕ଟ͍ͷͰɺ࢓༷มߋ͕͋ͬͨ࣌ʹमਖ਼͕೉͍͠ɻ https://eh-career.com/engineerhub/entry/2021/05/28/160000#Laravel%E3%81%AE%E4%BE%8B%E3%81%AB%E8%A6%8B%E3%82%8BFatModel

Slide 19

Slide 19 text

શମߏ੒(ཧ૝) αʔόαΠυ ϒϥ΢β͔Β ΞΫηε Component HTML CSS JS bladeͳͲ Resouce.php APIϦΫΤετ APIϨεϙϯε Request.php router controller Model Database όϦσʔγϣϯ Ϩεϙϯε஋Λ ఆٛ Service αʔυύʔςΟ MPA Events Enum ਵ࣌࢖༻

Slide 20

Slide 20 text

શମߏ੒(ཧ૝) αʔόαΠυ ϒϥ΢β͔Β ΞΫηε Component HTML CSS JS bladeͳͲ Resouce.php APIϦΫΤετ APIϨεϙϯε Request.php router controller Model Database όϦσʔγϣϯ Ϩεϙϯε஋Λ ఆٛ Service αʔυύʔςΟ MPA Events Enum ਵ࣌࢖༻ ControllerͰग़͖ͯ ͨϩδοΫΛmodel ʹدͤΔ

Slide 21

Slide 21 text

શମߏ੒(ཧ૝) αʔόαΠυ ϒϥ΢β͔Β ΞΫηε Component HTML CSS JS bladeͳͲ Resouce.php APIϦΫΤετ APIϨεϙϯε Request.php router controller Model Database όϦσʔγϣϯ Ϩεϙϯε஋Λ ఆٛ Service αʔυύʔςΟ MPA Events Enum ਵ࣌࢖༻ ֎෦αʔϏεΛୟ͘ Α͏ͳॲཧ͸Service ʹॻ͘

Slide 22

Slide 22 text

શମߏ੒(ཧ૝) αʔόαΠυ ϒϥ΢β͔Β ΞΫηε Component HTML CSS JS bladeͳͲ Resouce.php APIϦΫΤετ APIϨεϙϯε Request.php router controller Model Database όϦσʔγϣϯ Ϩεϙϯε஋Λ ఆٛ Service αʔυύʔςΟ MPA Events Enum ਵ࣌࢖༻ DBͰఆٛ͢Δ΄ͲͰ ͸ͳ͍Α͏ͳఆ਺ܥ ͸Enumʹॻ͘

Slide 23

Slide 23 text

શମߏ੒(ཧ૝) αʔόαΠυ ϒϥ΢β͔Β ΞΫηε Component HTML CSS JS bladeͳͲ Resouce.php APIϦΫΤετ APIϨεϙϯε Request.php router controller Model Database όϦσʔγϣϯ Ϩεϙϯε஋Λ ఆٛ Service αʔυύʔςΟ MPA Events Enum ਵ࣌࢖༻ ό Ϧ σ ʔ γ ϣ ϯ ͸ RequestΫϥεʹॻ͘

Slide 24

Slide 24 text

શମߏ੒(΋ͬͱେن໛ʹͳ͖ͬͯͨΒ) αʔόαΠυ ϒϥ΢β͔Β ΞΫηε Component HTML CSS JS bladeͳͲ Resouce.php APIϦΫΤετ APIϨεϙϯε Request.php router controller Model όϦσʔγϣϯ Ϩεϙϯε஋Λ ఆٛ Service αʔυύʔςΟ MPA Events Enum ਵ࣌࢖༻ Repository Logic Ϗδωεɾ ϩδοΫ σʔλɾ ΞΫηε Database

Slide 25

Slide 25 text

4 ϦϑΝΫλ಺༰

Slide 26

Slide 26 text

2 6 ᶃϚδοΫφϯόʔΛఆ਺Ͱఆٛ͢Δ ϚδοΫφϯόʔΛmodel΋͘͠͸ EnumΫϥεʹఆ਺ͱͯ͠ఆٛͯ͠ ݺͼग़͢ɻ

Slide 27

Slide 27 text

2 7 ᶄprivateϝιουʹ੾Γ෼͚Δ Ұͭͷϝιου͕50ߦΛ௒͑ͦ͏ͳ Βɺॲཧ͝ͱʹprivateϝιουʹ෼ ͚Δ

Slide 28

Slide 28 text

2 8 ᶅmodelΫϥεʹϩδοΫΛ෼͚Δ ControllerʹϩδοΫ͕૿͖͑ͯͨ ΒɺmodelʹॲཧΛ෼͚Δ

Slide 29

Slide 29 text

2 9 ᶆόϦσʔγϣϯ͸RequestΫϥεʹॻ͘ ControllerʹόϦσʔγϣϯΛ௚ॻ ͖͠ͳ͍ͰRequestΫϥεͰॲཧ͢ Δ

Slide 30

Slide 30 text

3 0 ᶇෳ਺ͷ Controller ʹ෼཭͢Δ ҰͭͷControllerͰΞΫγϣϯϝ ι ο υ ͕ ૿ ͑ ͢ ͗ Δ ৔ ߹ ͸ ɺ ControllerϑΝΠϧ͝ͱ෼͚Δ

Slide 31

Slide 31 text

3 1 ᶈϨεϙϯεͷσʔλΛResource ʹॻ͘ Ϩεϙϯεσʔλ͕ෳࡶԽ͖ͯͨ͠ ΓɺՃ޻͕ඞཁͳ৔߹͸ResouceΫ ϥεʹ෼͚Δ

Slide 32

Slide 32 text

3 2 ·ͱΊ ɾControllerͷ੹຿ͷൣғ֎ͷॲཧ͸ೖΕͳ͍ɻ ɾඞཁʹԠͯ͡ɺϩδοΫͷ૚Λ૿΍͢ɻ ɾॲཧΛࡉ෼Խͯ͠ɺॏෳ͢Δॲཧ͸·ͱΊΔɻ

Slide 33

Slide 33 text

3 3 ࢀߟ https://qiita.com/karayok/items/d7740ab2bd0adbab2e06 https://qiita.com/nunulk/items/2323b0c30a2cbe5fdb0c https://qiita.com/nunulk/items/6ed409345efb6ee4f660 ϦϙδτϦύλʔϯͱ Laravel ΞϓϦέʔγϣϯͰͷσΟϨΫτϦߏ଄ ࠓ೔͔Β࢝ΊΒΕΔϦϑΝΫλϦϯά10બ (1) Laravel Ͱ Fat Controller Λ๷͙ 5 ͭͷ Tips