Slide 1

Slide 1 text

1)1ͷυΩϡϝϯτΛಡΜͰ 1)1ͷ͜ͱΛ΋ͬͱ஌Ζ͏ খ઒༤େ!pWFTUS 1 PHP BLT #3

Slide 2

Slide 2 text

খ઒༤େ (͓͕Θ͔ͭͻΖ) @fivestr Racing Driver (Amateur) Author of "Perfect PHP" CTO at Ancar Inc. 2

Slide 3

Slide 3 text

Έͳ͞Μ1)1ͷ࠷৽ಈ޲͸νΣοΫͯ͠·͔͢ʁ w 1)1ͰԿ͕৽͘͠ͳ͔ͬͨ w ࠓޙͲͷΑ͏ͳػೳ͕௥Ճ͞ΕΔ͔ 3

Slide 4

Slide 4 text

1)1 w εΧϥʔλΠϓώϯτ w ϦλʔϯλΠϓώϯτ w ԋࢉࢠ /VMM߹ମԋࢉࢠ w ԋࢉࢠ εϖʔεγοϓԋࢉࢠ w ແ໊Ϋϥε 4

Slide 5

Slide 5 text

1)1&SSPS w 5ISPXBCMF w &SSPS w &YDFQUJPO w ͪͳΈʹ#BTF&YDFQUJPOͰ͸ͳ͘ͳΓ·ͨ͠ 5

Slide 6

Slide 6 text

use Entity\{Article, Author, Comment}; 6

Slide 7

Slide 7 text

ҠߦυΩϡϝϯτΛಡΈ·͠ΐ͏ w <1)1Y͔Β1)1Y΁ͷҠߦ>
 IUUQQIQOFUNBOVBMKBNJHSBUJPOQIQ w ֤ϝδϟʔϚΠφʔόʔδϣϯ͝ͱʹ
 ҠߦυΩϡϝϯτ͕͋Γ·͢ w w υΩϡϝϯτͷτοϓ͔ΒḷΕ·͢ 7

Slide 8

Slide 8 text

ҠߦυΩϡϝϯτ͍͢͝ w جຊతʹ͢΂ͯͷมߋ͕·ͱΊΒΕ͍ͯ·͢ w ͔͠΋͍͍ͩͨ຋༁͞Ε͍ͯ·͢ w NUBLBHJ͞Μຊ౰ʹ͋Γ͕ͱ͏ 8

Slide 9

Slide 9 text

ࠓޙͷಈ͖͸Ͳ͏΍ͬͯݟ͍͚ͯ͹͍͍ͷʁ w ҠߦυΩϡϝϯτΛಡΊ͹ϦϦʔε͞Εͨ
 ৘ใ͸Θ͔ΔΑ͏ʹͳΓ·ͨ͠ w ͜Ε͔Β௥Ճ͞ΕΔػೳͱ͔͸
 Ͳ͏΍ͬͯ஌Ε͹Α͍ͷͰ͠ΐ͏͔ 9

Slide 10

Slide 10 text

1)13'$ w 3'$ͷϖʔδΛݟΔͱࠓޙͷಈ͖Λ
 νΣοΫͰ͖·͢ w IUUQTXJLJQIQOFUSGD 10

Slide 11

Slide 11 text

3'$ͷಈ͖ w %SBGU%JTDVTTJPO7PUJOH w "DDFQUFE*NQMFNFOUBUJPO w %FDMJOF w ౤ථͷ݁Ռͷࢍ੒͕ͳ͍ͱ٫Լ͞ΕΔ 11

Slide 12

Slide 12 text

*NQMFNFOUFE 12

Slide 13

Slide 13 text

<>7PJE3FUVSO5ZQF w WPJE ໭Γ஋͕ͳ͍ ΛϦλʔϯ
 λΠϓώϯτ͕ఆٛͰ͖ΔΑ͏ʹ 13

Slide 14

Slide 14 text

function process($data) :void { ...
 } 14

Slide 15

Slide 15 text

<>4VQQPSU$MBTT$POTUBOU7JTJCJMJUZ w Ϋϥεఆ਺ʹΞΫηεम০ࢠΛ
 ઃఆͰ͖ΔΑ͏ʹ͢Δ 15

Slide 16

Slide 16 text

class Foo { private const BAR = 'baz'; } 16

Slide 17

Slide 17 text

"DDFQUFE 1FOEJOH*NQMFNFOUFE 17

Slide 18

Slide 18 text

"MMPXTQFDJGZJOHLFZTJOMJTU w MJTU Ͱ࿈૝഑ྻͷΩʔΛࢦఆͯ͠
 ల։Ͱ͖ΔΑ͏ʹ͢Δ 18

Slide 19

Slide 19 text

list( 'type' => $type, 'value' => $value, ) = $attrs; 19

Slide 20

Slide 20 text

7PUJOH 20

Slide 21

Slide 21 text

(FOFSBMJ[FTVQQPSUPGOFHBUJWFTUSJOHP⒎TFUT w จࣈྻͷΦϑηοτࢦఆʹϚΠφεͷ஋Λ
 ࢦఆͰ͖ΔΑ͏ʹ͢Δ w TVCTUSͳͲؔ਺Ͱ͸αϙʔτ͞Ε͍ͯͨ w ͍·ͷͱ͜Ζ൓ର͸Ͱ͍ͯͳ͍ͷͰ௨Γͦ͏ 21

Slide 22

Slide 22 text

$str = 'abcdef'; var_dump($str[-2]); // => string(1) "e" 22

Slide 23

Slide 23 text

6OEFS%JTDVTTJPO 23

Slide 24

Slide 24 text

5SBJUTXJUIJOUFSGBDFT w τϨΠτʹΠϯλʔϑΣΠεΛ
 ࣮૷Ͱ͖ΔΑ͏ʹ͢Δ w ͢͹Β͍͠ w ͥͻ࣮૷͍͖͍ͯͨͩͨ͠ 24

Slide 25

Slide 25 text

trait LoggerInjectTrait implements LoggerAwareInterface { protected $logger; /** @Inject */ public function setLogger(LoggerInterface $logger) { $this->logger = $logger; } } 25

Slide 26

Slide 26 text

%FDMJOF 26

Slide 27

Slide 27 text

1SPQFSUZ"DDFTTPST4ZOUBY w ΫϥεͷϓϩύςΟͷΞΫηαఆٛ w ΊͬͪΌཉ͔ͬͨ͠ͷʹͳΜͰ 27

Slide 28

Slide 28 text

$MBTT.FUBEBUB "OOPUBUJPOT w ΞϊςʔγϣϯͷωΠςΟϒαϙʔτ͸
 ٫Լ͞Ε͍ͯΔ w %PDίϝϯτͷΞϊςʔγϣϯΛѻ͏ ʮ"OOPUBUJPOTJOEPDCMPDLʯ΋
 *OBDUJWFʹͳ͍ͬͯΔ 28

Slide 29

Slide 29 text

·ͱΊΔͱ 29

Slide 30

Slide 30 text

1)1υΩϡϝϯτΛಡ΋͏ w ҠߦΨΠυΛಡΉͱϦϦʔεͷ಺༰͕
 ೺ѲͰ͖·͢ w 3'$ΛಡΉͱࠓޙͷػೳ௥ՃͳͲͷಈ޲Λ
 ݟΔ͜ͱ͕Ͱ͖·͢ 30

Slide 31

Slide 31 text

͍͞͝ʹ 31

Slide 32

Slide 32 text

1)1ΤϯδχΞͱ J04ΤϯδχΞͱ "OESPJEΤϯδχΞͱ σβΠφʔͱ ͱ΋͔͘Ұॹʹಇ͍ͯ͘ΕΔํΛืू͍ͯ͠·͢ʂʂ 32