Slide 1

Slide 1 text

΍͍͞͠ ίʔσΟϯάن໿ͷಋೖ ߴ໺ ෱ߊ @fortkle - PHP BLT #2

Slide 2

Slide 2 text

ࣗݾ঺հ • @fortkle • Connehito גࣜձࣾʢϚϚ޲͚αʔϏε mamariʣ • ୲౰ྖҬ͸ϑϩϯτʙαʔόʔαΠυ • ࠷ۙͷझຯ͸ɺvimʹlintܥϓϥάΠϯΛೖΕ· ͬͯ͘ϓϥάΠϯʹౖΒΕ·͘Δ͜ͱ

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

ޚࣾͷίʔσΟϯάن໿ɺ ػೳͯ͠·͔͢ʁ 143 143 ΦϨΦϨ ;FOE $BLF1)1 4ZNGPOZ

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

ίʔσΟϯάن໿͕ͳ͍ͱਏ͍ • ίʔυϨϏϡʔͷࡍʹࠣࡉͳ΍ΓऔΓ͕ൃੜ
 (εϖʔεɺΠϯσϯτɺվߦҐஔ౳) • ίʔυελΠϧ͕౷Ұ͞Εͳ͘ͳΓอकੑͷ ௿Լ • ଞਓ͕ॻ͍ͨίʔυͷՄಡੑ͕Լ͕Δ

Slide 7

Slide 7 text

ͳΜͱ͔͠ͳ͍ͱ…!

Slide 8

Slide 8 text

3STEPͰίʔσΟϯάن໿Λ खʹೖΕΔ

Slide 9

Slide 9 text

ͨͱ͑͹…͜ΜͳPJT • طʹ։ൃ͕͔ͳΓਐΜͰ͍ΔPJT • ίʔσΟϯάن໿͸ࠓͷͱ͜Ζͳ͍ • ނʹphpcsͳͲΛී௨ʹ࢖͏ͱΤϥʔ͕େྔ ʹग़ͯਏ͍ => Ͳ͏΍ͬͯίʔσΟϯάن໿Λ࡞Δ͔ʁ

Slide 10

Slide 10 text

STEP1. ࠾༻͢Δن໿ΛܾΊΔ • ࠓ͔Β৽͘͠ίʔσΟϯάن໿Λ࠾༻͢Δͱ ͨ͠ΒPSR-2 • ࣍఺Ͱ࢖༻͍ͯ͠ΔFWಠࣗͷن໿(ex. Cake)

Slide 11

Slide 11 text

STEP2. νΣοΫπʔϧΛ༻ҙ • StyleCI΍ScrutinizerͳͲͷSaas΋͋Δ͕
 ͓ೃછΈ phpcs (PHP CodeSniffer) ͕͓͢͢Ί • ΧελϚΠζੑͷߴ͞ɺແྉɺ(ރΕͯΔ) • ͨͩ͠ී௨ʹ΍ͬͯ΋্ख͘ߦ͔ͳ͍

Slide 12

Slide 12 text

ී௨ʹ΍Δͱ͜͏ͳΔ Τϥʔग़ྗߦ਺ 65,000…….. ࣮ߦ࣌ؒ 27ඵ… ※ Vender/ ΍ Plugin/ ഑Լ΋ؚΜͰ͍ΔͷͰ࣮ࡍ͸΋ͬͱগͳ͘ͳΓ·͢ʢ੝ͬͨʣ

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

͏·͍͘͘phpcs

Slide 15

Slide 15 text

STEP2. νΣοΫπʔϧΛ༻ҙ • pearͰ͸ͳ͘composerͰΠϯετʔϧ // Πϯετʔϧ $ composer require “squizlabs/php_codesniffer=*" --dev 
 // ֬ೝʢར༻Ͱ͖Δن໿Λදࣔʣ $ vendor/bin/phpcs -i

Slide 16

Slide 16 text

STEP2. νΣοΫπʔϧΛ༻ҙ • phpcs͸xmlͰن໿ΛΧελϚΠζͰ͖Δ • STEP1ͰܾΊͨن໿Λܧঝ͚ͨͩ͠ͷϑΝΠ ϧ phpcs.xmlΛͭ͘Δ // phpcs.xml Owl standard Based on PSR2

Slide 17

Slide 17 text

STEP2. νΣοΫπʔϧΛ༻ҙ • ͓΋ΉΖʹɺԼهίϚϯυΛΞϓϦέʔγϣϯ શମ (./app) ʹର࣮ͯ͠ߦ $ vendor/bin/phpcs -s --report=source --standard=./ phpcs.xml ./app

Slide 18

Slide 18 text

STEP2. νΣοΫπʔϧΛ༻ҙ • Τϥʔͱͯ͠ݕग़͞Εͨن໿ͱΤϥʔ݅਺͕ ιʔτ͞Εͯදࣔ͞ΕΔʢ௒ศར..!ʣ

Slide 19

Slide 19 text

STEP2. νΣοΫπʔϧΛ༻ҙ • Τϥʔʹͳͬͨن໿ΛҰ౓શͯআ֎ (phpcs.xmlʹ௥ه) Owl standard Based on PSR2

Slide 20

Slide 20 text

STEP2. νΣοΫπʔϧΛ༻ҙ • ࠶౓phpcsΛ࣮ߦ͢ΔͱΤϥʔ͕ग़ͳ͘ͳΔɻ
 ˠ ʮ؇͍CodeSnifferʯͷ׬੒ $ vendor/bin/phpcs -s --report=source --standard=./ phpcs.xml ./app $ // Τϥʔ͕ͳ͍ͷͰ࣮ߦͯ͠΋Կ΋දࣔ͞Εͳ͍

Slide 21

Slide 21 text

STEP2. νΣοΫπʔϧΛ༻ҙ • ࡉ͔͘ϑΣʔζΛ෼͚ͯ1ͭ1ͭআ֎ϧʔϧΛফ ͍ͯ͘͠ => ͍͔ͭࣗવͱ໨ඪͷن໿ʹͳΔʂ Owl standard Based on PSR2

Slide 22

Slide 22 text

STEP2. νΣοΫπʔϧΛ༻ҙ • STEP2·ͱΊ 1. ໨ඪ(͜͜Ͱ͸PSR2)ΛϕʔεʹΤϥʔͱͳ͍ͬͯΔ
 ϧʔϧΛআ֎͠ɺʮ؇͍ن໿ʯΛ࡞Δ 2. ϑΣʔζຖʹϧʔϧͷআ֎Λ΍Ί͍͖ͯɺ
 গͣͭ͠໨ඪʹ͚͍ۙͮͯ͘ 3. શͯͷϧʔϧͷআ֎Λ΍Ίͨ࣌ɺ໨ඪͱಉ͡ن໿ͱͳΔ

Slide 23

Slide 23 text

STEP3. CIʹ૊ΈࠐΈࣗಈ࣮ߦ • TravisCIΛ࢖͍ͬͯͨ৔߹ • .travis.ymlʹॲཧΛ௥Ճࣗ͠ಈͰ࣮ߦ͞ΕΔΑ ͏ʹ͢Δ • νΣοΫର৅Λίϛοτ͞ΕͨϑΝΠϧͷ͏ͪ phpϑΝΠϧͷΈʹݶఆ͢Δ
 (shʹ·ͱΊͯ΋ྑ͍)

Slide 24

Slide 24 text

STEP3. CIʹ૊ΈࠐΈࣗಈ࣮ߦ // .travis.yml ~ུ~ before_script: # full clone - git fetch --unshallow - git fetch origin master:refs/remotes/origin/ master # setup application - sh ./setup_app.sh # exec codeSniffer - git diff --name-only --diff-filter=ACMR origin/master...HEAD | grep ".php" | xargs vendor/bin/phpcs --standard=./phpcs.xml PSJHJONBTUFSͱ )&"%Λൺֱͯࠩ͠෼͚ͩ νΣοΫ

Slide 25

Slide 25 text

STEP3. CIʹ૊ΈࠐΈࣗಈ࣮ߦ shͰ·ͱΊɺϝοηʔδΛදࣔ͢Ε͹ΑΓ਌੾ɻ Τϥʔ͕͋ͬͨ৔߹͸Ϗϧυ͕ࣦഊ͢Δɻ

Slide 26

Slide 26 text

·ͱΊ • ؇͍ϧʔϧ͔Β࢝Ίͯ໨ඪ(PSR-2)ʹ͍͍ۙͮͯ͘ Ξϓϩʔν͕Φεεϝ • ίϛοτͨ͠ϑΝΠϧͷΈΛphpcsͷݕࠪର৅ͱ ͠ɺTravisͰࣗಈ࣮ߦ͢Δͱָ • ࠓ·ͰίʔσΟϯάن໿ΛఘΊ͍ͯͨ͋ͷPJT΋
 ͍͔ͭPSR-2ʹ४ڌͰ͖Δ͔΋ʁ

Slide 27

Slide 27 text

͓͠·͍