Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
LaravelͱυϝΠϯϞσϧͱӬଓԽϞσϧ for laraval.osaka #12 2017/11/15 גࣜձࣾNextat தᒇ ݈ೋ
Slide 2
Slide 2 text
Domain Driven Development • DDDͰ࡞ΒΕͨOSSͷྫ͕গͳ͍orͳ͍ • →ͱᷖᮣʹൃݴ͢ΔͱSNS্Ͱͭͬ͜·ΕΔ • → Α͘Ͱ͖ͨOSSυϝΠϯϞσϧͷྫͩɺͱ → λγΧχ • ͕͔ͩ͠͠ɺ࣮൴Β͕Γ͍ͨͷDDDͷຊ࣭ ͷ෦Ͱͳ͘ɺΫϦʔϯΞʔΩςΫνϟϨϙδ τϦύλʔϯͷ࣮ྫͷWebΞϓϦͰʁ
Slide 3
Slide 3 text
ຊͷ͓ • DDDͷ΄΅͠·ͤΜ • LaravelͰυϝΠϯϞσϧʢΤϯςΟ ςΟʣΛͲͷΑ͏ʹ࣮͠ӬଓԽ͢Δ͔ɺ ͕য • →RepositoryύλʔϯɺӬଓԽϞσϧ
Slide 4
Slide 4 text
• EloquentʢActiveRecordύλʔϯʣΛ͏ͱDBϑΝʔε τʹͳΓ͕ͪ • ؆୯ͳாථͷCRUDͳΒे • υϝΠϯͷ༷͕ෳࡶͳ߹ʁ • ӬଓԽΛͯ͠υϝΠϯϞσϧΛத৺ʹߟ͍͑ͨ • Repositoryύλʔϯ • EloquentΛͲ͏͏ʁ 3ύλʔϯΛհ LaravelͱӬଓԽ
Slide 5
Slide 5 text
͓ɿTodoཧ ΤϯςΟςΟ
Slide 6
Slide 6 text
͓ɿTodoཧ ϨϙδτϦ
Slide 7
Slide 7 text
͓ɿTODOཧ όϦϡʔΦϒδΣΫτ • Ұ෦ͷVOڞ༻ ΄΅εΧϥʔΛϥοϓ͚ͨͩ͠
Slide 8
Slide 8 text
͓ɿTodoཧ ϨϙδτϦར༻ྫ InterfaceʹͷΈґଘ ←͍ΘΏΔServiceΫϥε
Slide 9
Slide 9 text
Ҏ্ͷ࣮Λ3ύλʔϯͰ
Slide 10
Slide 10 text
ύλʔϯ1 Eloquent Model=Entity
Slide 11
Slide 11 text
ύλʔϯ1 Eloquent Model=Entity • هड़ྔతʹͷָ͘͢͝ • EloquentΛʹ͏ํ๏ͱ΄΅ࠩͳ͍ • ϨϙδτϦͷࣄ΄΅ͳ͍ • Eloquent Model͕࿐ग़͢ΔͨΊɺυϝΠϯϞσ ϧͷ֎ͷίʔυΛॻ͖͍͢ • ex) $todoItem->save() ͳͲ ←FXCKING!!!! PhpStorm͞Μ͓͜
Slide 12
Slide 12 text
ύλʔϯ2 Entity has Eloquent Model Eloquent ModelΤϯςΟςΟͱผ్࡞
Slide 13
Slide 13 text
ύλʔϯ2 Entity has Eloquent Model Eloquent ModelΛதʹ࣋ͭ
Slide 14
Slide 14 text
ύλʔϯ2 Entity has Eloquent Model • Eloquent ModelΛ֎෦͔Β৮Βͤͳ͍ ͷͰ1ΑΓߗ͍ • Entity෦Ͱґવͱͯ͠ةݥ͕ͩɺ ໘Eloquentͷػೳͷ׆༻͍͢͠ • Entityͷ༷มߋׂ͕ͱָ
Slide 15
Slide 15 text
ύλʔϯ3 POPO Entity and Eloquent Model όϦϡʔΦϒδΣΫτ͔Β࡞
Slide 16
Slide 16 text
ύλʔϯ3 POPO Entity and Eloquent Model ϑΝΫτϦΛ࡞͓ͬͯ͘ͱศར 2ͱಉ͡Eloquent Model
Slide 17
Slide 17 text
ύλʔϯ3 POPO Entity and Eloquent Model ϨϙδτϦ͜Μͳײ͡ 2ͱಉ͡Eloquent Model
Slide 18
Slide 18 text
ύλʔϯ3 POPO Entity and Eloquent Model • POPO = Plain Old PHP Object • ͪ͜Μͱ͔ͷൃදͰΑ͘ݟ͔͚Δ • ӬଓԽΛ͖ͬΓͱ͚Δ • ΤϯςΟςΟͷߏ͕Θ͔Γ͍͢ • ίʔυͷهड़ྔ૿͑·͢
Slide 19
Slide 19 text
ൺֱ • جຊతʹ1→2→3ͷॱʹʢͦͷͷʣ࣮ ίετ্͕Γอकੑ/Ҡ২ੑ্͕Δ • Interface͑͞ఆ·Εɺ1→2→3ͷॱͰ ϦϑΝΫλϦϯάՄೳ • υϝΠϯͷෳࡶ͞ʹ߹ΘͤͨબΛ
Slide 20
Slide 20 text
ͦͷଞͷબࢶ • ӬଓԽϞσϧͱͯ͠EloquentҎ֎Λ࠾༻͢Δέʔε • 4. POPO Entity + ΫΤϦϏϧμʔ • →EloquentϞσϧ͕ػೳաؾຯͳͨΊγϯϓϧʹ • 5. POPO Entity + PDO • →4Λಥ͖٧Ίͯ͏PDOͰΑ͘Ͷʁͱ͍͏ύλʔϯ • 6. POPO Entity + other DataMapper • → DoctrineͳͲͱࠩ͠ସ͑Δ
Slide 21
Slide 21 text
·ͱΊ • Laravel AppͷӬଓԽͷ࣮ύλʔϯ͍Ζ͍Ζ͋Δ • ӬଓԽͷམͱ͠ॴΛݟ͚ͭͯυϝΠϯʹूத͠Α͏ • ྫͷ؆୯ͳTodoཧΞϓϦʹؒΛ૿͗͢͠Δ ͷΦʔόʔΤϯδχΞϦϯάؾຯɻඞཁʹԠͯ͡ • GitHubʹHTTP·ͰؚΊͨαϯϓϧίʔυUP༧ఆ • → https://github.com/n1215/lara-todo-persistence
Slide 22
Slide 22 text
ࢀߟจݙ • Domain Models - atlashphp.io (http:// atlasphp.io/mapper/2.x/ domain.html#1-1-10) • ↑Atlas͍͍ΑAtlas