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

擬人化から始めるPHPerのためのオブジェクト指向超入門

 擬人化から始めるPHPerのためのオブジェクト指向超入門

#phpcon2014

Kenichiro Kishida

October 11, 2014
Tweet

More Decks by Kenichiro Kishida

Other Decks in Programming

Transcript


  1. 擬人化 ͔Β࢝ΊΔ
    1)1$POGFSFODF!TJ[VIJLP
    1)1FSͷͨΊͷ
    ΦϒδΣΫτࢦ޲ɹɹೖ໳

    View Slide

  2. ,FOJDIJSP,JTIJEB
    5PLZP +"1"/
    TJ[VIJLP!HNBJMDPN !TJ[VIJLP
    IUUQTHJUIVCDPNTJ[VIJLP
    IUUQCMPHPQFOUPLZPKQ +1POMZ

    *XPSLPO&JXB4ZTUFN.BOBHFNFOU*OD 最新刊
    祝::増33刷�

    View Slide

  3. Getty Images
    ϋϩʔΩςΟ͸
    ʮωίͷٖਓԽʯ
    CZαϯϦΦ

    View Slide

  4. /05ΦϒδΣΫτࢦ޲ϓϩάϥϛϯά

    View Slide

  5. ϑϨʔϜϫʔΫ
    ࢖͍ͬͯ·͔͢

    View Slide

  6. .
    PEFM
    7
    JFX
    $
    POUSPMMFS

    View Slide

  7. ϑϨʔϜϫʔΫ͸ιϑτ΢ΣΞͷ໰୊Λղ
    ܾ͢ΔҰൠతͳઃܭͰ͢ɻ
    Α͘ੜ͡Δ໰୊Λղܾ͢Δํ๏ʹ͍ͭͯͷ
    ΞΠσΞͰ͋Δύλʔϯͱ͸ҟͳΓɺϑϨ
    ʔϜϫʔΫ͸ɺ։ൃऀ͕ݸผͷঢ়گʹ
    ߹͏Α͏ௐ੔·ͨ͸֦ுͰ͖ΔΫϥε
    ϥΠϒϥϦΛఏڙ͠·͢ɻ
    ΦϒδΣΫτσβΠϯ P.031 ΑΓ

    View Slide

  8. 2003೥ݪஶɺ2007೥೔ຊޠ༁ൃച

    View Slide

  9. ೥ͷ8FCϑϨʔϜϫʔΫ
    w.PKBWJ 1)1

    w4USVUT +BWB

    w;PQF 1ZUIPO

    w3BJMT &UIOBͳͲ͸೥ʹ஀ੜ

    View Slide

  10. ιϑτ΢ΣΞΦϒδΣΫτ͸ɺࡉ๔ͱಉ༷
    ʹɺ͓ޓ͍ͷதͰԿ͕ߦΘΕ͍ͯΔ͔
    ஌Γ·ͤΜ͕ɺෳࡶͳλεΫΛ࣮ߦ͢
    ΔͨΊʹίϛϡχέʔγϣϯΛऔΓɺ
    ڠௐ͠·͢ɻ
    ΦϒδΣΫτσβΠϯ P.001 ΑΓ

    View Slide

  11. ҰํɺҰຕؠͷιϑτ΢ΣΞ͸ɺແ਺ͷࣃंΛ
    ࣋ͭػց࢓ֻ͚ͷ࣌ܭͷΑ͏ͳ΋ͷͰ
    ͢ɻͦΕͧΕͷࣃं͸ɺ஌ੑΛ࣋ͨͣɺଞͷྡ઀
    ͢Δࣃंͱ͚ͩؔ܎Λ࣋ͬͯػೳ͠·͢ɻ͜ͷΑ
    ͏ͳઃܭʹ͸ɺͲ͏͠Α͏΋ͳ͍ܽ఺
    ͕͋Γ·͢ɻʮࣃंͷ࣌ܭΛ࡞͍ͬͯΔͱɺ͍
    ͔ͭ͸͔ͳΓͷϨϕϧͷෳࡶ͞ʹୡ͠ɺࣗΒഁ
    ৕͢ΔͰ͠ΐ͏ʯ(Alan kay)
    ΦϒδΣΫτσβΠϯ P.001 ΑΓ

    View Slide

  12. View Slide

  13. ΦϒδΣΫτࢦ޲
    Ͱ΍ΒͶ͹ʂ

    View Slide

  14. Ͱ΋
    ΦϒδΣΫτࢦ޲
    ೉ͦ͠͏

    View Slide

  15. http://d.hatena.ne.jp/nowokay/20140718

    View Slide

  16. 800ϖʔδ, 7,344ԁ
    960ϖʔδ, 7,776ԁ

    View Slide

  17. ೖ໳Ͱ͸ͳ͍ͷͰ஫ҙʂ

    View Slide

  18. View Slide

  19. ຊॻ͸ΦϒδΣΫτࢦ޲ઃܭͷೖ໳ʗ࣮ફ
    ॻͰ͢ɻ
    ΦϒδΣΫτࢦ޲ϓϩάϥϛϯάͷܦ
    ݧΛ໰ΘͣɺΦϒδΣΫτࢦ޲ઃܭͷ
    جຊΛ͔ͬ͠Γͱཧղ͢Δ͜ͱ͕Ͱ͖
    ·͢ɻ

    ΦϒδΣΫτσβΠϯ ʮຊॻʹ͍ͭͯʯ ΑΓ

    View Slide

  20. ΦϒδΣΫτࢦ޲ΞϓϦέʔγϣϯΛߏங
    ͢Δͱ͍͏͜ͱ͸ɺద੾ͳιϑτ΢ΣΞ
    ػߏΛߟ͑ग़͢͜ͱΛҙຯ͠·͢ɻ
    ࢲͨͪ͸ɺ࣮ੈքʹଘࡏ͠ͳ͍Φϒδ
    ΣΫτΛߟ͑ग़͢͜ͱͰɺݱ࣮ੈքͷ৘
    ใɺϓϩηεɺ૬ޓ࡞༻ɺؔ܎ɺͦͯ͠Τ
    ϥʔͰ͑͞΋දݱ͠·͢ɻ
    ΦϒδΣΫτσβΠϯ P.002 ΑΓ

    View Slide

  21. ੜ໋ͷͳ͍΋ͷʹରͯ͠ɺੜ໋ͱ஌ੑΛ
    ༩͑·͢ɻ
    ཧղ͕ࠔ೉ͳݱ࣮ੈքͷΦϒδΣΫτΛɺ
    ΑΓγϯϓϧͰ؅ཧ͠΍͍͢ιϑτ΢
    ΣΞΦϒδΣΫτ΁෼ׂ͠·͢ɻ
    ࢲͨͪ͸ɺ৽͍͠ΦϒδΣΫτΛߟ͑ͩ͠
    ͍ͯΔͷͰ͢ɻ
    ΦϒδΣΫτσβΠϯ P.002 ΑΓ

    View Slide

  22. ٖਓԽ͸ɺਓؒҎ֎ͷ΋ͷΛਓ෺ͱͯ͠ɺ
    ਓؒͷੑ࣭ɾಛ௃Λ༩͑Δൺᄻͷํ๏Ͱ͋
    Δɻແੜ෺ͷٖਓԽ͸ɺ͸͖ͬΓͱ
    ௚઀తʹແੜ෺ʹੜ໋Λ༩͍͑ͯΔɻ
    ٖਓԽ͞ΕͨੈքͰ͸ɺ਌͠ΈΛ࣋ͨ
    ͤɺର৅ʹؔ৺ΛߴΊɺର࿩ܗࣜΛ༻
    ͍Δ͜ͱͰ໌֬ੑΛߴΊɺ٬؍ੑΛग़
    ͢ޮՌ͕ظ଴Ͱ͖Δɻ
    WikiPedia ΑΓ

    View Slide

  23. ΦϒδΣΫτࢦ޲ΛٖਓԽͰ࢝ΊΔ
    w࣮ੈքʹͳ͍ଘࡏΛߟ͑ग़͢
    wੜ໋ͱ஌ੑΛ༩͑Δ
    wର࿩ܗࣜΛ༻͍Δ

    View Slide

  24. ͑͢ʹΌΜ
    !SBNZ@CMVFTLZ

    View Slide

  25. ͠Μ;͒ʹΌΜ

    View Slide

  26. ٖਓԽͳΒͰ͖ͦ͏ʂ

    View Slide

  27. ੑ֨ ϩʔϧ
    ΛܾΊΔ
    w৘ใอ࣋໾
    wߏ଄Խ໾
    wαʔϏεఏڙ໾
    w੍ޚ໾
    wௐ੔໾
    wΠϯλʔϑΣʔε໾

    View Slide

  28. ॻ͖ग़ͯ͠ΈΔ
    w໊લɿద੾ͳ໊લΛ෇͚Α͏
    w໾ׂɿͭͷதʹ౰ͯ͸ΊΔ
    wಛ௃ ଐੑ
    ɿͨ͘͞Μ͸ͳ͍͸ͣ
    wͰ͖Δ͜ͱ ੹຿
    ɿ໾ׂʹԊ͍ͬͯΔ͔
    ֬ೝ͢Δ

    View Slide

  29. ໊લॏཁ
    ചΕͳ͍Ωϟϥ͸େ఍໊લ͕ඍົ...

    View Slide

  30. ৘ใอ࣋໾
    wϞσϧ΍ΤϯςΟςΟ
    w৘ใΛ஌ͬͯΔ
    wอ࣋͢Δσʔλ͔Βܭࢉ͢Δͷ΋0,

    View Slide

  31. ߏ଄Խ໾
    wͬ͘͟ΓάϧʔϓԽ͢Δ
    wϦετɺ഑ྻɺϋογϡͱ͔Ωϡʔͱ
    ͔
    wΤϯςΟςΟͷؔ࿈ͱ͔Λදݱ͢Δͱ
    ͖΋

    View Slide

  32. αʔϏεఏڙ໾
    wಛघͳॲཧΛఏڙ͢Δ
    w8PSLFS 8SJUFSΈ͍ͨʹɺFSʹͳͬͯ
    ͍ΔΫϥεΛݟ͚ͭͨΒɺͦͷࢠ͸େ
    ఍αʔϏεఏڙ໾
    w4FSWJDF1SPWJEFS

    View Slide

  33. ੍ޚ໾
    wଞͷෳ਺ͷΦϒδΣΫτ͔Βঢ়گΛฉ
    ͖ग़ͯ͠൑அ͢Δ
    w൑அͨ݁͠ՌΛࢦࣔ͢Δ
    w$PPSEJOBUPS

    View Slide

  34. ௐ੔໾
    w͋ΔΦϒδΣΫτ͔Β৘ใΛड͚औͬ
    ͯɺଞͷΦϒδΣΫτʹ౉͢
    w$POUSPMMFS

    View Slide

  35. ΠϯλʔϑΣʔε໾
    wϢʔβʔΠϯλʔϑΣʔεͱ͔

    View Slide

  36. ΦϨ
    ࣾ௕
    "͞Μ
    ൿॻ
    #͘Μ
    ࣄ຿
    $͞Μ
    ޿ใ
    ࠓ೔xxxͳࣄ͕
    ͋ͬͯ͞ʔ
    ࣾ௕ޠ࿥ʹه࿥
    ͓͍ͯͯ͠
    SNSͰ޿Ίͯ
    ͓͍ͯ

    View Slide

  37. ΦϨ
    ࣾ௕
    "͞Μ
    ൿॻ
    #͘Μ
    ࣄ຿
    %͞Μ
    ޿ใ
    ࣗঀ఻
    ग़ͤͳ͍͔ͳ͊
    ࣾ௕ޠ࿥
    ·ͱΊͯఏग़ͯ͠
    ϥΠλʔ͞Μ
    ͱௐ੔ΑΖ͘͠

    View Slide

  38. ΦϨ
    ࣾ௕
    ৽ਓ܅
    ίϐʔ܎
    ͜ͽ͓
    ෳࣸ܎
    ιʔλ࿠
    ιʔτ܎
    ίϐʔ10෦
    ιʔτͯ͠
    ϗονΩεࢭΊ
    ΑΖ͘͠ 10෦͓ئ͍͠·͢
    ͓ئ͍͠·͢
    ࢭΊ٢
    ϗνΩε܎
    ͓ئ͍͠·͢

    View Slide

  39. ੑ͕ܾ֨·Δͱ
    w੹຿͸ࣗͣͱܾ·ͬͯ͘Δ
    wΦϒδΣΫτͷ૬ޓ࡞༻ʢίϥϘϨʔ
    γϣϯʣ͕໌֬ʹͳΔ
    wਤʹॻ͘ͷ͕ॏཁͰ͢

    View Slide

  40. http://astah.change-vision.com/ja/

    View Slide

  41. 1)1ʹ͢Δʹ͸
    wΫϥεϕʔεͷΦϒδΣΫτࢦ޲ݴޠ
    㱠ϓϩτλΠϓϕʔε
    wΫϥε໊ʹ໾ׂ
    wϓϩύςΟʹಛ௃
    wϝιουʹͰ͖Δ͜ͱ

    View Slide

  42. #͘Μࣄ຿
    class ࣄ຿ extends Model {
    public $name;
    public function ޠ࿥Λه࿥͢Δ($contents) {
    return $this->ޠ࿥->save(....);
    }
    public function ޠ࿥Λ͢΂ͯऔಘ͢Δ() {
    return $this->ޠ࿥->find(‘all’);
    }
    }

    View Slide

  43. ΦϒδΣΫτͱΠϯελϯε
    wΦϒδΣΫτ͸#͘Μʹ࣮ମ
    w#͘Μ͸ࣄ຿ͷΠϯελϯεͰ͋Δʹ࣮

    w#͘Μ͸৘ใอ࣋໾ͷΠϯελϯεͰ͋
    Δ࣮ྫ
    $b = new ࣄ຿;
    $b instanceof ࣄ຿ === true
    $b instanceof Model === true

    View Slide

  44. ·ͱΊ
    wΦϒδΣΫτࢦ޲ͷઃܭ͕Θ͔Δ
    ͱ࣮૷ΛཧղͰ͖ΔΑ͏ʹͳΔ
    w·ٖͣਓԽͯ͠ਤΛॻ͘͜ͱ͔Β
    ࢝ΊΔͱֶͼ΍͍͢
    wΦϒδΣΫτσβΠϯΛೖ໳ॻͱ
    ͯ͠ಡΜͰΈͯཉ͍͠

    View Slide

  45. ࣭໰

    View Slide

  46. ͋Γ͕ͱ͏͍͟͝·ͨ͠
    5IBOLZPV
    https://joind.in/talk/view/12043

    View Slide