$30 off During Our Annual Pro Sale. View Details »

新標準PSRに学ぶきれいなPHP

Yusuke Ando
September 28, 2012

 新標準PSRに学ぶきれいなPHP

第3回 Fukuoka.phpで発表したPSRについての発表資料です。

Yusuke Ando

September 28, 2012
Tweet

More Decks by Yusuke Ando

Other Decks in Technology

Transcript

  1. 'VLVPLBQIQYusuke Ando (@yando)
    'VLVPLBQIQYusuke Ando (@yando)
    ͖Ε͍ͳ1)1
    ৽ඪ४143ʹֶͿ

    View Slide

  2. 'VLVPLBQIQYusuke Ando (@yando)
    'VLVPLBQIQYusuke Ando (@yando)

    View Slide

  3. 'VLVPLBQIQYusuke Ando (@yando)
    ෱ԬͰͷϘϥϯςΟΞٸืʂ

    View Slide

  4. 'VLVPLBQIQYusuke Ando (@yando)

    View Slide

  5. 'VLVPLBQIQYusuke Ando (@yando)
    ͜Μͳܦݧ͸͋Γ·ͤΜ͔ʁ

    View Slide

  6. 'VLVPLBQIQYusuke Ando (@yando)
    ಉ྅ͷίʔυ͕ಡΈͮΒ͍

    View Slide

  7. 'VLVPLBQIQYusuke Ando (@yando)
    λϒ೿ͱεϖʔε೿ͷੌࢂͳ੎ྗ૪͍

    View Slide

  8. 'VLVPLBQIQYusuke Ando (@yando)
    ωʔϛϯάͰ΋ΊΔ

    View Slide

  9. 'VLVPLBQIQYusuke Ando (@yando)
    ίʔσΟϯάن໿͕ඞཁʂ

    View Slide

  10. 'VLVPLBQIQYusuke Ando (@yando)

    View Slide

  11. 'VLVPLBQIQYusuke Ando (@yando)
    1&"3 ;FOE
    4ZNGPOZ $BLF1)1
    Զʑ

    View Slide

  12. 'VLVPLBQIQYusuke Ando (@yando)
    ͨ͘͞Μ͋ͬͯ
    ͲΕ͕͍͍͔Θ͔Βͳ͍

    View Slide

  13. 'VLVPLBQIQYusuke Ando (@yando)
    143

    View Slide

  14. 'VLVPLBQIQYusuke Ando (@yando)
    143͸1)1pH͕ࡦఆͨ͠
    ࠓ෩ͳ1)1ͷ
    ίʔσΟϯάن໿ʂ

    View Slide

  15. 'VLVPLBQIQYusuke Ando (@yando)
    XXXQIQpHPSH

    View Slide

  16. 'VLVPLBQIQYusuke Ando (@yando)
    ߽՚ͳϝϯόʔਞ
    /BUF"CFMF-JUIJVN
    /JMT"EFSNBOOQIQ##
    #SFUU#JFCFS1&"3 1&"3
    (VJMIFSNF#MBODP%PDUSJOF %PDUSJOF
    FUBM
    +PSEJ#PHHJBOP$PNQPTFS 1BDLBHJTU
    ,BSNB%PSESBL;JLVMB
    1BVM%SBHPPOJT11* 11*
    8JMMJBN%VSBOE1SPQFM 1SPQFM
    "OESFX&EEJF+PPNMB
    $BM&WBOTUIFDPNNVOJUZBUMBSHF
    -BSSZ(BSpFME%SVQBM
    1BVM.+POFT4PMBS'SBNFXPSL "VSB
    1SPKFDU
    3PCFSU-FNLF'-08
    -BSSZ.BTUFST$BLF1)1 $BLF1)1
    3ZBO1BSNBO"NB[PO8FC4FSWJDFT
    4%,
    &WFSU1PU4BCSF%"7
    'BCJFO1PUFODJFS4ZNGPOZ 4ZNGPOZ
    "OESF3PNDLFF;1VCMJTI
    1BVM4DPUU$IJTJNCB $
    1IJM4UVSHFPO1ZSP$.4
    ,SJT8BMMTNJUI"TTFUJD #V[[
    .BUUIFX8FJFS01IJOOFZ;FOE
    'SBNFXPSL ;FOE'SBNFXPSL
    %BWJE;ÛMLF"HBWJ

    View Slide

  17. 'VLVPLBQIQYusuke Ando (@yando)
    143ͱ͸ʁ
    w1SPQPTJOHB4UBOEBSET3FDPNNFOEBUJPO
    ඪ४קࠂఏҊ

    w143
    ɹΦʔτϩʔυͷҝͷϑΝΠϧ໊ͱΫϥε໊ͷن໿
    w143
    ɹڞ༗ίʔυͷߴϨϕϧͳ࿈ܞੑΛ໨తʹͨ͠ن໿
    w143
    ɹඪ४Խ͞ΕͨίʔυΛ໨ࢦ͢ελΠϧΨΠυ
    ಺༰ຖʹϨϕϧ෼͚͕͞Ε͍ͯΔ

    View Slide

  18. 'VLVPLBQIQYusuke Ando (@yando)
    143
    ΦʔτϩʔυͷҝͷϑΝΠϧͱΫϥεͷن໿

    View Slide

  19. 'VLVPLBQIQYusuke Ando (@yando)
    143
    w໊લۭؒ͸ϕϯμʔ໊͔Βඞͣ࢝ΊΔ
    w໊લۭؒͷ۠੾Γ͸σΟϨΫτϦ֊૚ʹͳΔ
    wΫϥε໊಺ͷΞϯμʔείΞ͸σΟϨΫτϦ֊૚ʹͳΔ
    w໊લۭؒͱΫϥε໊ʹQIQΛ͚ͭͯϑΝΠϧ໊ͱ͢Δ
    w໊લۭؒͱΫϥε໊ͷେจࣈখจࣈʹ͍ͭͯ͸ෆ໰
    1)1ͱ໊લۭؒʹεϚʔτʹରԠ

    View Slide

  20. 'VLVPLBQIQYusuke Ando (@yando)
    143ͷྫ
    ର৅͸໊લۭؒɺΫϥε໊ɺϑΝΠϧ໊ͷΈ

    View Slide

  21. 'VLVPLBQIQYusuke Ando (@yando)
    BVUPMPBEͷ࣮૷ྫ
    SFRVJSF@PODF஍ࠈͱ͞Α͏ͳΒ

    View Slide

  22. 'VLVPLBQIQYusuke Ando (@yando)
    143
    ૬ޓʹػೳΛ࿈ܞͤ͞Δҝͷن໿

    View Slide

  23. 'VLVPLBQIQYusuke Ando (@yando)
    'JMF
    w1)1ίʔυ͸௕͍ QIQ λά͔ Λ࢖Θͳ͚Ε
    ͹ͳΒͳ͍ɻͦΕҎ֎ͷλάΛ࢖ͬͯ͸ͳΒͳ͍
    w1)1ίʔυ͸#0.ͳ͠65'Λ࢖͏
    wϑΝΠϧ͸Ϋϥε΍ؔ਺ͳͲͷఆٛΛߦ͍ͦͷଞͷ෭࡞༻
    ͕͋ͬͯ͸ͳΒͳ͍ɻ·ͨ͸෭࡞༻ͷ͋ΔॲཧΛߦ͏͕ఆ
    ٛͱॲཧΛಉ࣌ʹߦͳͬͯ͸ͳΒͳ͍

    View Slide

  24. 'VLVPLBQIQYusuke Ando (@yando)
    ෭࡞༻ͷμϝͳྫ

    View Slide

  25. 'VLVPLBQIQYusuke Ando (@yando)
    ෭࡞༻ͷηʔϑͳྫ

    View Slide

  26. 'VLVPLBQIQYusuke Ando (@yando)
    ໊લۭؒͱΫϥε
    w143ʹ४ڌ͢Δ
    wΫϥε໊͸4UVEMZ$BQTͰએݴ͢Δ
    w1)1Ҏ߱Ͱ͸ඞ໊ͣલۭؒΛ࢖͏
    w1)1Ҏલͷ৔߹͸ٖࣅ໊લۭؒΛ࢖͏

    View Slide

  27. 'VLVPLBQIQYusuke Ando (@yando)
    ఆ਺ɺϓϩύςΟɺϝιου
    wఆ਺͸શͯେจࣈهड़͠ΞϯμʔείΞͰ୯ޠΛ۠੾Δ
    wϓϩύςΟʹ͍ͭͯ͸׶͑ͯݴٴ͍ͯ͠ͳ͍
    ɹ4UVEMZ$BQTDBNFM$BTFVOEFS@TDPSFͳͲ
    wϝιου͸DBNFM$BTFͰએݴ͢Δ

    View Slide

  28. 'VLVPLBQIQYusuke Ando (@yando)
    143
    ඪ४Խ͞Εͨ1)1ίʔυͷҝͷن໿

    View Slide

  29. 'VLVPLBQIQYusuke Ando (@yando)
    جຊ
    w143ʹ४ڌ
    wશͯͷ1)1ϑΝΠϧ͸վߦʹ-'Λ࢖Θͳ͚Ε͹ͳΒͳ͍
    wϑΝΠϧͷ຤ඌ͸ҰߦͷۭߦͰऴΘΒͳ͚Ε͹ͳΒͳ͍
    wϑΝΠϧ͕1)1ͷΈͷ৔߹ ͸লུͤͶ͹ͳΒͳ͍

    View Slide

  30. 'VLVPLBQIQYusuke Ando (@yando)
    -JOF
    wϋʔυϦϛοτ͸ઃ͚ͳ͍
    wιϑτϦϛοτ͸จࣈͰɺܯࠂͷର৅
    wߦ͸จࣈҎ಺Ͱ͋Δ΂͖ɺӽ͑Δ৔߹͸ෳ਺ߦʹ෼ׂ
    wߦͷ຤ඌʹۭനΛ෇͚ͯ͸ͳΒͳ͍
    wՄಡੑͷҝʹۭߦΛՃ͑ͯ΋Α͍
    wߦʹෳ਺ͷεςʔτϝϯτ͕͋ͬͯ͸ͳΒͳ͍

    View Slide

  31. 'VLVPLBQIQYusuke Ando (@yando)
    Πϯσϯτ
    wΠϯσϯτ͸εϖʔε̐ͭɺλϒΛ࢖ͬͯ͸ͳΒͳ͍

    View Slide

  32. 'VLVPLBQIQYusuke Ando (@yando)
    Ωʔϫʔυ
    wΩʔϫʔυ͸খจࣈͰهड़͠ͳ͚Ε͹ͳΒͳ͍
    wUSVFGBMTFOVMM͸খจࣈͰهड़͠ͳ͚Ε͹ͳΒͳ͍

    View Slide

  33. 'VLVPLBQIQYusuke Ando (@yando)
    ໊લۭؒ
    w໊લۭؒͷఆٛͷޙʹ͸ۭߦΛ̍ߦஔ͘
    wVTFએݴ͸໊લۭؒએݴͷޙʹஔ͘
    wએݴ͝ͱʹ̍ͭͮͭͷVTFΛ࢖͏
    wVTFͷϒϩοΫͷޙʹۭߦΛ̍ߦஔ͘

    View Slide

  34. 'VLVPLBQIQYusuke Ando (@yando)
    Ϋϥε
    wFYUFOETͱJNQMFNFOUT͸Ϋϥεఆٛͱಉ͡ߦ
    w։͖ϒϨʔε͸୯ಠͷߦʹɺด͡ϒϨʔε͸಺༰ͷ࣍ͷߦ

    View Slide

  35. 'VLVPLBQIQYusuke Ando (@yando)
    ϓϩύςΟ
    wશͯͷϓϩύςΟʹΞΫηεݖΛઃఆ
    wWBSΩʔϫʔυ͸࢖ͬͯ͸ͳΒͳ͍
    w̍εςʔτϝϯτʹෳ਺ͷϓϩύςΟΛؚΊͳ͍
    wΞϯμʔείΞΛલஔͯ͠ΞΫηεݖΛදݱ͠ͳ͍

    View Slide

  36. 'VLVPLBQIQYusuke Ando (@yando)
    ϝιου
    wશͯͷϝιουʹΞΫηεݖΛઃఆ
    wΞϯμʔείΞΛલஔͯ͠ΞΫηεݖΛදݱ͠ͳ͍
    wϝιου໊એݴͷޙʹۭനΛஔ͔ͳ͍ɺׅހͷલޙʹεϖ
    ʔεΛஔ͔ͳ͍ɺϒϨʔε͸ಠཱͨ͠ߦʹ͢Δ

    View Slide

  37. 'VLVPLBQIQYusuke Ando (@yando)
    ϝιουͷҾ਺
    wҾ਺ϦετͷΧϯϚͷલʹۭനΛஔ͔ͳ͍
    wΧϯϚͷޙʹ͸ۭനΛ̍ͭஔ͘
    wσϑΥϧτͷ͋ΔҾ਺͸Ϧετͷ࠷ޙʹஔ͘

    View Slide

  38. 'VLVPLBQIQYusuke Ando (@yando)
    ϝιουͷҾ਺̎
    wҾ਺ϦετΛෳ਺ߦʹͯ͠Πϯσϯτͯ͠΋Α͍
    wͦͷ৔߹͸ดׅ͡ހͱ։͖ϒϨʔεΛಉ͡ߦʹ

    View Slide

  39. 'VLVPLBQIQYusuke Ando (@yando)
    BCTUSBDUpOBMTUBUJD
    wBCTUSBDUpOBMΞΫηεݖͷલʹஔ͘
    wTUBUJD͸ΞΫηεݖͷޙʹஔ͘

    View Slide

  40. 'VLVPLBQIQYusuke Ando (@yando)
    ϝιουͱؔ਺ͷݺग़
    wϝιου໊ͱׅހͷؒʹۭനΛஔ͔ͳ͍
    wׅހͷޙʹۭനΛஔ͔ͳ͍
    wΧϯϚͷલʹۭനΛஔ͔ͳ͍ɹΧϯϚͷޙʹۭനΛஔ͘
    wҾ਺ϦετΛෳ਺ߦʹΠϯσϯτͯ͠෼ׂ΋Ͱ͖Δ

    View Slide

  41. 'VLVPLBQIQYusuke Ando (@yando)
    ੍ޚߏ଄
    wΩʔϫʔυͷޙʹۭനΛ̍ͭஔ͘
    w։͖ׅހͷޙͱดׅ͡ހͷલʹۭനΛஔ͔ͳ͍
    wดׅ͡ހͱ։͖ϒϨʔεͷؒʹ͸ۭനΛ̍ͭஔ͘
    wϝΠϯͷϒϩοΫ͸̍ϨϕϧΠϯσϯτ͢Δ
    wด͡ϒϨʔε͸ϝΠϯͷϒϩοΫͷ௚ޙ

    View Slide

  42. 'VLVPLBQIQYusuke Ando (@yando)
    JGFMTFJGFMTF
    wFMTFFMTFJGͱϒϨʔε͸ಉ͡ߦ
    wFMTFJGͰ͸ͳ͘FMTFJGΛ࢖͏΂͖

    View Slide

  43. 'VLVPLBQIQYusuke Ando (@yando)
    TXJUDIDBTF
    wDBTF͸TXJUDI͔ΒΠϯσϯτɹ಺༰΍CSFBL΋Πϯσϯτ
    wҙਤతʹԿ΋͠ͳ͍DBTFʹ͸ίϝϯτ

    View Slide

  44. 'VLVPLBQIQYusuke Ando (@yando)
    XIJMFEPXIJMF
    wಛචࣄ߲ͳ͠

    View Slide

  45. 'VLVPLBQIQYusuke Ando (@yando)
    GPSGPSFBDI
    wಛචࣄ߲ͳ͠

    View Slide

  46. 'VLVPLBQIQYusuke Ando (@yando)
    USZDBUDI
    wಛචࣄ߲ͳ͠

    View Slide

  47. 'VLVPLBQIQYusuke Ando (@yando)
    Ϋϩʔδϟ
    wGVODUJPOͷޙʹۭനΛ̍ͭஔ͘VTFͷલޙʹۭന
    w։͖ׅހͷޙɺดׅ͡ހͷલʹۭനΛஔ͔ͳ͍
    wΧϯϚͷલʹۭനΛஔ͔ͳ͍ɺΧϯϚͷޙʹۭനΛஔ͘

    View Slide

  48. 'VLVPLBQIQYusuke Ando (@yando)
    Ϋϩʔδϟ
    wҾ਺ɺม਺ͷϦετΛෳ਺ߦʹͯ͠΋Α͍

    View Slide

  49. 'VLVPLBQIQYusuke Ando (@yando)
    ͦͷଞ
    wԼهͷ఺ʹ͍ͭͯ͸143Ŗ͸͋͑ͯݴٴ͍ͯ͠ͳ͍
    wάϩʔόϧม਺ͱఆ਺ͷఆٛ
    wؔ਺ͷఆٛ
    wԋࢉͱ୅ೖ
    wؒͷߦͷ഑ஔ
    wίϝϯτͱυΩϡϝϯτϒϩοΫ
    wΫϥεͷϓϦϑΟΫεͱαϑΟοΫε
    wϕετϓϥΫςΟε

    View Slide

  50. 'VLVPLBQIQYusuke Ando (@yando)
    ͓·͚
    w143Ͱ͸ஶ໊ͳϓϩδΣΫτ΁ͷ౷ܭௐ͕ࠪߦΘΕͨ

    View Slide

  51. 'VLVPLBQIQYusuke Ando (@yando)
    ࣭໰ʁ

    View Slide