Slide 1

Slide 1 text

Laravelͷݕࡧػೳͷ࣮૷ํ๏ MVCϞσϧͷ f lowʹԊͬͯ 2021/07/11 @yoshit a ro PHPษڧձ ߨٛʹͯ

Slide 2

Slide 2 text

❏ର৅ͱͳΔํ • L a r a vel৮Γͨͯͷํ ❏಺༰ • ݕࡧػೳ࣮૷ • ࣮૷࣌ͷλεΫࡉ෼Խ • ্هʹै͍λεΫͷ࣮ߦ • MVCͷྲྀΕΛ౿·͑ͯ • +αͷิ଍

Slide 3

Slide 3 text

ɾLaravelͷݕࡧػೳͷ࣮૷ํ๏ 1. Routingઃఆ 2. Client ͷ Request P a r a meter औಘ 3. औಘͨ͠ P a r a meter Ͱ Query Λ࡞੒ 4. Query Ͱ৘ใΛऔಘ͠Viewʹ౉͢ 5. ݕࡧ method Λ Model ʹ੾Γ෼͚Δ 6. Request P a r a meter Λ C a st ͢Δ 7. ·ͱΊ MVCϞσϧͷ f lowʹԊͬͯ

Slide 4

Slide 4 text

ɾLaravelͷݕࡧػೳͷ࣮૷ํ๏ 1. Routingઃఆ 2. Client ͷ Request P a r a meter औಘ 3. औಘͨ͠ P a r a meter Ͱ Query Λ࡞੒ 4. Query Ͱ৘ใΛऔಘ͠Viewʹ౉͢ 5. ݕࡧ method Λ Model ʹ੾Γ෼͚Δ 6. Request P a r a meter Λ C a st ͢Δ 7. ·ͱΊ MVCϞσϧͷ f lowʹԊͬͯ

Slide 5

Slide 5 text

ΫϥΠΞϯτ Laravelʹ͓͚ΔMVCͷྲྀΕͱΠϝʔδ router web.php View Controller ArticleController.php Model Article.php articel.blade.php JS CSS img HTTP Ϩεϙϯε ϨϯμϦϯά HTTP ϦΫΤετ URLͰRouting ඞཁͳΒ DBΞΫηε σʔλΛ౉͢ CRUD ॲཧ݁Ռ σʔλΛૹΔ

Slide 6

Slide 6 text

1. Routingઃఆ 1. form λάͰΞΫγϣϯ࣌ͷߦ͖ઌΛઃఆ͢Δ 2. web.php ʹURL/Controller/Action Λઃఆ͢Δ

Slide 7

Slide 7 text

1. form λάͰΞΫγϣϯ࣌ͷߦ͖ઌΛઃఆ͢Δ

Slide 8

Slide 8 text

2. web.php ʹURL/Controller/Action Λઃఆ͢Δ

Slide 9

Slide 9 text

ɾLaravelͷݕࡧػೳͷ࣮૷ํ๏ 1. Routingઃఆ 2. Client ͷ Request P a r a meter औಘ 3. औಘͨ͠ P a r a meter Ͱ Query Λ࡞੒ 4. Query Ͱ৘ใΛऔಘ͠Viewʹ౉͢ 5. ݕࡧ method Λ Model ʹ੾Γ෼͚Δ 6. Request P a r a meter Λ C a st ͢Δ 7. ·ͱΊ MVCϞσϧͷ f lowʹԊͬͯ

Slide 10

Slide 10 text

ΫϥΠΞϯτ Laravelʹ͓͚ΔMVCͷྲྀΕͱΠϝʔδ router web.php View Controller ArticleController.php Model Article.php articel.blade.php JS CSS img HTTP Ϩεϙϯε ϨϯμϦϯά HTTP ϦΫΤετ URLͰRouting ඞཁͳΒ DBΞΫηε σʔλΛ౉͢ CRUD ॲཧ݁Ռ σʔλΛૹΔ

Slide 11

Slide 11 text

2. Client ͷ Request Parameter औಘ 1. input λάͷ v a lue ଐੑΛઃఆ͢Δ 2. Controller Ͱ RequestP a r a meter Λऔಘ

Slide 12

Slide 12 text

1. input λάͷ value ଐੑΛઃఆ͢Δ

Slide 13

Slide 13 text

2. Controller Ͱ RequestParameter Λऔಘ

Slide 14

Slide 14 text

2. ࣮૷ͯ͠Έ·͠ΐ͏ʂ

Slide 15

Slide 15 text

ɾLaravelͷݕࡧػೳͷ࣮૷ํ๏ 1. Routingઃఆ 2. Client ͷ Request P a r a meter औಘ 3.औಘͨ͠ P a r a meter Ͱ Query Λ࡞੒ 4. Query Ͱ৘ใΛऔಘ͠Viewʹ౉͢ 5. ݕࡧ method Λ Model ʹ੾Γ෼͚Δ 6. Request P a r a meter Λ C a st ͢Δ 7. ·ͱΊ MVCϞσϧͷ f lowʹԊͬͯ

Slide 16

Slide 16 text

3. औಘͨ͠ Parameter Ͱ Query Λ࡞੒ 1. Eloquent or QueryBuirder ?? 2. جຊతʹ͸ Eloquent Λ࢖͏΂͖

Slide 17

Slide 17 text

1. Eloquent or QueryBuirder ?? → Eloquent

Slide 18

Slide 18 text

1. Eloquent or QueryBuirder ?? → QueryBuirder

Slide 19

Slide 19 text

2. 2. جຊతʹ͸ Eloquent Λ࢖͏΂͖ • جຊ͸EloquentΛ࢖͍·͠ΐ͏ • Ͱ΋ࠓճ͸QueryBuilderͰॻ͖·͢ʢসʣ

Slide 20

Slide 20 text

2. ɾ Eloquent ͷಛ௃ͱϝϦοτ • Eloquent ͸ɺL a r a vel ͕ఏڙ͍ͯ͠Δ O/R Ϛού • Eloquent O/R Ϛού͸ ActiveRecord ύλʔϯͰ࣮૷͞Ε͍ͯΔ • SQL ͱ͍͏ผͷݴޠΛɺΞϓϦέʔγϣϯʢ L a r a vel ʣʹհೖͤͣࡁΉ • ςʔϒϧಉ࢜ͷؔ܎ੑΛఆٛͰ͖Δ • ࠶ར༻ੑ΍֦ுੑ͕ߴ͍ ɾ Eloquent ͷσϝϦοτ • SQL ͕ॻ͚ͳͯ͘΋ɺσʔλऔಘ͕Ͱ͖Δ • Ͳ͏͍͏ΫΤϦΛൃߦ͍ͯ͠Δͷ͔Θ͔Βͳ͍ • ಛఆͷϝιουΛ࢖͏ͱɺαϒΫΤϦΛ࢖࣮ͬͯߦ͢Δ ɾ Eloquent ͷ࢖༻৔໘ • ύϑΥʔϚϯεΑΓ΋҆શੑΛऔΓ͍ͨ • ࣮֬ʹɺϦϨʔγϣϯʹԊͬͨσʔλऔಘΛ͍ͨ͠ • ಛఆͷঢ়گԼͰͷ৚݅෇͚΍ɺॲཧͷ࣮ߦΛ࣮૷͍ͨ͠

Slide 21

Slide 21 text

2. ɾ QueryBuilder ͷಛ௃ͱϝϦοτ • L a r a vel ͕ఏڙ͍ͯ͠ΔΫΤϦΛੜ੒͢ΔͨΊͷϝιου܈ɻ • SQL ϥΠΫʹΫΤϦΛॻ͘͜ͱ͕Ͱ͖Δ • Eloquent ͱൺ΂ͯߴ଎ • ൃߦ͞Ε͍ͯΔΫΤϦ͕ղΓ΍͍͢ • SQL Λॻ͚Ε͹ֶशίετ͸௿͍ ɾ QueryBuilder ͷσϝϦοτ • ࣗྗͰߟྀ͠ͳ͚Ε͹͍͚ͳ͍఺͕͋Δ • ςʔϒϧಉ࢜ͷ݁߹͸Λߦ͏ඞཁ͕͋ΓϦϨʔγϣϯΛਖ਼͘͠೺Ѳ͠൓ө͢Δඞཁ͕͋ Δ • ࿦ཧ࡟আͷ৚݅͸ɺࣗ෼Ͱ৚݅ࢦఆ͢Δ • ͦ΋ͦ΋ SQL จͰؒҧͬͨॻ͖ํΛॻ͍ͯ͸͍͚ͳ͍ ɾ QueryBuilder ͷ࢖༻৔໘ • ෳࡶͳ৚݅΍େྔͷσʔλΛѻ͏ͷͰɺύϑΥʔϚϯεΛٻΊ͍ͨ ʢݕࡧը໘ɺҰཡը໘ͱ͔ʣ • ෳࡶͳ৚݅ͷΫΤϦΛɺൃߦ͍ͨ͠

Slide 22

Slide 22 text

2. ɾ Eloquent ͷಛ௃ • Eloquent ͸ɺL a r a vel ͕ఏڙ͍ͯ͠Δ O/R Ϛού • SQL ͱ͍͏ผͷݴޠΛɺΞϓϦέʔγϣϯʢ L a r a vel ʣʹհೖͤͣࡁΉ • ςʔϒϧಉ࢜ͷؔ܎ੑΛఆٛͰ͖Δ • ࠶ར༻ੑ΍֦ுੑ͕ߴ͍ ɾ QueryBuilder ͷಛ௃ • L a r a vel ͕ఏڙ͍ͯ͠ΔΫΤϦΛੜ੒͢ΔͨΊͷϝιου܈ɻ • SQL ϥΠΫʹΫΤϦΛॻ͘͜ͱ͕Ͱ͖Δ • Eloquent ͱൺ΂ͯߴ଎ • ൃߦ͞Ε͍ͯΔΫΤϦ͕ղΓ΍͍͢ • SQL Λॻ͚Ε͹ֶशίετ͸௿͍

Slide 23

Slide 23 text

2. ࣮૷ͯ͠Έ·͠ΐ͏ʂ

Slide 24

Slide 24 text

ɾLaravelͷݕࡧػೳͷ࣮૷ํ๏ 1. Routingઃఆ 2. Client ͷ Request P a r a meter औಘ 3. औಘͨ͠ P a r a meter Ͱ Query Λ࡞੒ 4. Query Ͱ৘ใΛऔಘ͠Viewʹ౉͢ 5. ݕࡧ method Λ Model ʹ੾Γ෼͚Δ 6. Request P a r a meter Λ C a st ͢Δ 7. ·ͱΊ MVCϞσϧͷ f lowʹԊͬͯ

Slide 25

Slide 25 text

4. QueryBuilder Ͱ৘ใΛऔಘ͠Viewʹ౉͢ ࣮૷ͯ͠Έ·͠ΐ͏ʂ

Slide 26

Slide 26 text

ɾLaravelͷݕࡧػೳͷ࣮૷ํ๏ 1. Routingઃఆ 2. Client ͷ Request P a r a meter औಘ 3. औಘͨ͠ P a r a meter Ͱ Query Λ࡞੒ 4. Query Ͱ৘ใΛऔಘ͠Viewʹ౉͢ 5. ݕࡧ method Λ Model ʹ੾Γ෼͚Δ 6. Request P a r a meter Λ C a st ͢Δ 7. ·ͱΊ MVCϞσϧͷ f lowʹԊͬͯ

Slide 27

Slide 27 text

5. ݕࡧ method Λ Model ʹ੾Γ෼͚Δ 1. ݕࡧػೳهड़෦෼͸ϏδωεϩδοΫ૚ʹॻ͖·͠ΐ͏ʂ 2. ͦͷޙʹ Controller Ͱݺͼग़͠·͠ΐ͏ʂ

Slide 28

Slide 28 text

ΫϥΠΞϯτ 2. 3૚ΞʔΩςΫνϟͱLeravelͰͷMVCͷؔ܎ Webαʔό ΞϓϦέʔγϣϯαʔό DBαʔό ※ड෇ ※۩ମతͳॲཧ ※σʔλϕʔε HTTP HTTP ϓϨθϯςʔγϣϯ૚ ϏδωεϩδοΫ૚ σʔλΞΫηε૚ Ϣʔβʔͱͷ ΍ΓऔΓ ɾϖʔδͷಡΈऔΓ ɾೖྗͷड෇ ϓϩάϥϜͰ ॲཧΛߦ͏ ɾϧʔϧΛ΋ͭ DBΛૢ࡞͠ ݁ՌΛอଘ͢Δ ɾॻ͔ͳ͍ࣄ΋͋Δ View Controller Model CRUD ॲཧ݁Ռ

Slide 29

Slide 29 text

Ϙπͳ ݕࡧػೳ RequestP a r a meter 3ͭͷ৔߹ ϧʔϧΛҰͭҰͭ ifจͰॻ͍ͪΌ͏ Α͋͘Δ΍ͭ😊

Slide 30

Slide 30 text

ϦϑΝΫλϦϯά(ະ׬੒)

Slide 31

Slide 31 text

2. ࣮૷ͯ͠Έ·͠ΐ͏ʂ

Slide 32

Slide 32 text

ɾLaravelͷݕࡧػೳͷ࣮૷ํ๏ 1. Routingઃఆ 2. Client ͷ Request P a r a meter औಘ 3. औಘͨ͠ P a r a meter Ͱ Query Λ࡞੒ 4. Query Ͱ৘ใΛऔಘ͠Viewʹ౉͢ 5. ݕࡧ method Λ Model ʹ੾Γ෼͚Δ 6. Request P a r a meter Λ C a st ͢Δ 7. ·ͱΊ MVCϞσϧͷ f lowʹԊͬͯ

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

6. Request Parameter Λ Cast ͢Δ 1. GET/POST Ͱͷ RequestP a r a meter ͸ೖྗ஋νΣοΫ 2. ܕม׵(C a st) ɺRequestP a r a meter ͸શ෦ String Β͍͠

Slide 35

Slide 35 text

https://www.php.net/m a nu a l/j a / l a ngu a ge.types.type- juggling.php#l a ngu a ge.types.typec a sting PHP ϚχϡΞϧ>ݴޠϦϑΝϨϯε >ܕ>ܕͷ૬ޓม׵ ΑΓҾ༻

Slide 36

Slide 36 text

https://www.php.net/m a nu a l/j a / l a ngu a ge.types.decl a r a tions.php ʮPHP ϚχϡΞϧ>ݴޠϦϑΝϨϯε>ܕ>ܕએݴ ʯ ΑΓҾ༻

Slide 37

Slide 37 text

2. ࣮૷ͯ͠Έ·͠ΐ͏ʂ

Slide 38

Slide 38 text

ɾLaravelͷݕࡧػೳͷ࣮૷ํ๏ 1. Routingઃఆ 2. Client ͷ Request P a r a meter औಘ 3. औಘͨ͠ P a r a meter Ͱ Query Λ࡞੒ 4. Query Ͱ৘ใΛऔಘ͠Viewʹ౉͢ 5. ݕࡧ method Λ Model ʹ੾Γ෼͚Δ 6. Request P a r a meter Λ C a st ͢Δ 7. ·ͱΊ MVCϞσϧͷ f lowʹԊͬͯ

Slide 39

Slide 39 text

7. ·ͱΊ 1. ػೳ࣮૷͸λεΫΛࡉ෼Խͯ͠؆୯ʹ͠Α͏ 2. MVCϞσϧͱͦΕͧΕͷ໾ׂΛҙࣝ͠·͠ΐ͏