Slide 1

Slide 1 text

1)1ͷNJEEMFXBSFΛ ࢖͍͜ͳͨ͢Ίʹ 1)1ΧϯϑΝϨϯεઋ୆ 
 ߹ಉձࣾςϯϚυɹࢁԬ޿޾

Slide 2

Slide 2 text

ࣗݾ঺հ  ࢁԬ޿޾!IJSP@Z  1)1ͱ͔/PEFKTͷΤϯδχΞ  1)1͸ͷ͜Ζ͔Β  ߹ಉձࣾςϯϚυ୅දࣾһ

Slide 3

Slide 3 text

ɹɹ߹ಉձࣾςϯϚυ!!  Ϗδωεࢧԉࣄۀ  ࣾ֎$50ͱ͔ΞυόΠβʔ  *OOPWBUPS+BQBO64&/.FEJBͳͲ  αʔϏε։ൃࣄۀ  JSVDBNJNFNPDPOBTV

Slide 4

Slide 4 text

ࠓճͷ͓࿩ͷΰʔϧ  NJEEMFXBSFͱ͍͏ߟ͑ํ͕Θ͔Δ  ฉ͍ͨͱ͖ʹΠϝʔδ͕ු͔Ϳ  ར༻γʔϯ͕૝૾Ͱ͖Δ  ϑϨʔϜϫʔΫͰ࢖͑Δ͔Θ͔Δ

Slide 5

Slide 5 text

͓࿩Λ࢝ΊΔલʹ

Slide 6

Slide 6 text

લճ·Ͱͷ͋Β͢͡  1)1ΧϯϑΝϨϯεؔ੢  4MJN'SBNFXPSLͰ࢝ΊΔ1)1ͷ NJEEMFXBSF  1)1ΧϯϑΝϨϯε  1)1'*(ͷ)551ॲཧඪ४ͷઃܭ ͸ͳͥ143ʹͳͬͨͷ͔

Slide 7

Slide 7 text

Ͱ͸ɺ͋ΒͨΊͯ

Slide 8

Slide 8 text

XFCΞϓϦͱ͸  ϦΫΤετΛड͚औΓʢೖྗʣ  ͍Ζ͍ΖॲཧΛͯ͠  ೝূͱ͔%#ͷॲཧͱ͔  ϨεϙϯεΛฦ͢ʢग़ྗʣ

Slide 9

Slide 9 text

؆୯ʹඳ͘ͱ͜͏

Slide 10

Slide 10 text

XFCΞϓϦͷલॲཧ  શϦΫΤετڞ௨Ͱ͍ͨ͠ॲཧ  ϩάΠϯೝূ  %#͔ΒͷσʔλऔಘɹͳͲ  ΞϓϦέʔγϣϯຊମͷલʹ
 ॲཧΛڬΊΔΑ͏ʹ͢Ε͹Α͍ͷͰ͸

Slide 11

Slide 11 text

ϑΟϧλʔʢલॲཧʣ

Slide 12

Slide 12 text

XFCΞϓϦͷޙॲཧ  શϦΫΤετڞ௨ͷॲཧɺ·ͩ͋Δ  ϩάग़ྗ  ॲཧޙʹ·ͱΊͯϝʔϧૹ৴  ΞϓϦέʔγϣϯຊମͷޙʹ΋
 ॲཧΛڬΊΔΑ͏ʹͰ͖ΔͱΑͦ͞͏

Slide 13

Slide 13 text

ϑΟϧλʔʢޙॲཧʣ

Slide 14

Slide 14 text

ͯ͞ɺͪΐͬͱ ൃ૝Λస׵͢Δ࿩

Slide 15

Slide 15 text

ೖΕࢠߏ଄  ೖΕࢠࣜʹॲཧΛ
 ͭͳ͍Ͱ͍͘࢓૊ΈΛߟ͑Δ  ྫؔ਺"ͱؔ਺#Λ࣮૷͢Δ  ؔ਺"͸ͦͷॲཧͷதͰؔ਺#Λ
 ࣮ߦɺͦͷ݁ՌΛฦ͢Α͏ʹ͢Δ

Slide 16

Slide 16 text

1)1Ͱॻ͍ͯΈΔͱ $a = function (string $str, \Closure $next) : string { echo 'A'; // લॲཧΆ͍
 $result = $next($str); // ࣍ΛݺͿ echo 'C'; // ޙॲཧΆ͍ return $result; };
 $b = function (string $str) : string { echo 'B';
 return strtoupper($str); };
 $a('hoge', $b); // ABC

Slide 17

Slide 17 text

ೖΕࢠߏ଄

Slide 18

Slide 18 text

͞ΒʹೖΕࢠߏ଄

Slide 19

Slide 19 text

λϚωΪΈ͍ͨʁ QIPUPCZEBSXJO#FMMMJDFOTFEVOEFS$$#:  
 IUUQTXXXqJDLSDPNQIPUPTEBSXJOCFMM

Slide 20

Slide 20 text

ೖΕࢠߏ଄ͷಛ௃  ΞϓϦຊମΛแΉΑ͏ʹ࣮૷  ֎ଆ͔Β৽͍͠;Δ·͍Λ௥ՃͰ͖Δ  ࢀߟ"01ʢΞεϖΫτࢦ޲ϓϩάϥϛϯάʣ  ڞ௨ͷॲཧΛԣஅతʹݺͼग़͠  લॲཧɾޙॲཧΛࢦఆͰ͖Δ

Slide 21

Slide 21 text

XFCΞϓϦʹద༻

Slide 22

Slide 22 text

1)1ʹ͓͚Δྺ࢙

Slide 23

Slide 23 text

4UBDL1)1  IUUQTTUBDLQIQDPN  l$PNQPTJOH)UUQ,FSOFM*OUFSGBDF NJEEMFXBSFTTJODFz  l8IBUEPXFXBOU 3FVTFBUUIF XFCMBZFSz  4ZNGPOZͷ)UUQ,FSOFM*OUFSGBDF

Slide 24

Slide 24 text

4UBDL1)1

Slide 25

Slide 25 text

143ͱ͸ʁ  IUUQTXXXQIQpHPSHQTS  l1)14UBOEBSET3FDPNNFOEBUJPOTz  ܾఆతͳʮඪ४ʯͰ͸ͳ͍  ͋͘·ͰΦεεϝɺקࠂ  ίϛϡχςΟʔͰ͸Өڹྗେ

Slide 26

Slide 26 text

Α͘ฉ͘143  143#BTJD$PEJOH4UBOEBSE  143$PEJOH4UZMF(VJEF  143-PHHFS*OUFSGBDF  143"VUPMPBEJOH4UBOEBSE

Slide 27

Slide 27 text

143  IUUQTXXXQIQpHPSHQTSQTS  )551NFTTBHFJOUFSGBDFT  1TSa)UUQa.FTTBHFa3FRVFTU*OUFSGBDF  1TSa)UUQa.FTTBHFa3FTQPOTF*OUFSGBDF  XFCΞϓϦͷೖग़ྗͷඪ४Խ

Slide 28

Slide 28 text

143  IUUQTXXXQIQpHPSHQTSQTS  )5514FSWFS3FRVFTU)BOEMFST  1TSa)UUQa4FSWFSa3FRVFTU)BOEMFS*OUFSGBDF  1TSa)UUQa4FSWFSa.JEEMFXBSF*OUFSGBDF  XFCΞϓϦͷඪ४Խ

Slide 29

Slide 29 text

ઌ΄Ͳͷਤ

Slide 30

Slide 30 text

143143

Slide 31

Slide 31 text

.JEEMFXBSF*OUFSGBDF interface MiddlewareInterface { public function process( ServerRequestInterface $request, RequestHandlerInterface $handler ): ResponseInterface; }

Slide 32

Slide 32 text

3FRVFTU)BOEMFS interface RequestHandlerInterface { public function handle( ServerRequestInterface $request ): ResponseInterface; }

Slide 33

Slide 33 text

࠷ۙͷ143ͷ࿩୊  IUUQTUXJUUFSDPNGBCQPUTUBUVT   3FNPWF4ZNGPOZCZGBCQPUu1VMM 3FRVFTUuQIQpHpHTUBOEBSET

Slide 34

Slide 34 text

ϑϨʔϜϫʔΫͱ NJEEMXBSFͷؔ܎

Slide 35

Slide 35 text

4MJN'SBNFXPSLW  IUUQTXXXTMJNGSBNFXPSLDPN  )5513PVUFS  .JEEMFXBSF  1434VQQPSU  %FQFOEFODZ*OKFDUJPO 143

Slide 36

Slide 36 text

4MJN  class ExampleMiddleware { public function __invoke( ServerRequestInterface $request, ResponseInterface $response, callable $next ): ResponseInterface { return $next($request, $response); } }

Slide 37

Slide 37 text

4MJN'SBNFXPSLW  IUUQTHJUIVCDPNTMJNQIQ4MJN CMPCY$)"/(&-0(NE  4MJNOPMPOHFSTIJQTXJUIB143 JNQMFNFOUBUJPO  1433FRVFTU)BOEMFSTDBOOPX CFVTFEBTSPVUFDBMMBCMFT

Slide 38

Slide 38 text

;FOE&YQSFTTJWF  IUUQTEPDT[FOEGSBNFXPSLDPN [FOEFYQSFTTJWF  1431433PVUJOH143  ඪ४Λҙࣝ

Slide 39

Slide 39 text

-BSBWFM  IUUQTMBSBWFMDPNEPDT NJEEMFXBSF  143ͷ࣮૷Ͱ͸ͳ͍  ैདྷͷDPOUSPMMFSͷิॿతͳ໾ׂ  ڞ௨ॲཧΛ࣮૷͢ΔͨΊͷ࢓૊Έ

Slide 40

Slide 40 text

-BSBWFM  class ExampleMiddleware { public function handle( \Illuminate\Http\Request $request, \Closure $next ) { return $next($request); } }

Slide 41

Slide 41 text

4ZNGPOZ  NJEEMFXBSFʹ૬౰͢Δػೳ͸ͳ͍  ػೳͱͯ͠͸ϑΟϧλʔ͕͋Δ  IUUQTTZNGPOZDPNEPDDVSSFOU FWFOU@EJTQBUDIFS CFGPSF@BGUFS@pMUFSTIUNM

Slide 42

Slide 42 text

$BLF1)1  IUUQTCPPLDBLFQIQPSHFO DPOUSPMMFSTNJEEMFXBSFIUNM  ͔Β143ʹରԠ  $43'τʔΫϯνΣοΫͷ࣮૷ͳͲ͕ NJEEMFXBSFͰͳ͞Ε͍ͯΔ

Slide 43

Slide 43 text

$BLF1)1  class ExampleMiddleware { public function handle( ServerRequestInterface $request, ResponseInterface $response, callable $next ): \Cake\Http\Response { return $next($request, $response); } }

Slide 44

Slide 44 text

ͯ͞ɺ·ͱΊ

Slide 45

Slide 45 text

ͪΐͬͱେ͛͞ͳ࿩

Slide 46

Slide 46 text

ͦ΋ͦ΋ϑϨʔϜϫʔΫͱ͸  ϦΫΤετΛड͚औΔ  SPVUJOHΛݩʹߦ͏ॲཧΛબ୒͢Δ  ॲཧΛݺͼग़͠ɺ࣮ߦ  ݁ՌΛϨεϙϯεͱͯ͠ग़ྗ͢Δ

Slide 47

Slide 47 text

ϑϨʔϜϫʔΫ ࡞Εͦ͏͡Όͳ͍Ͱ͔͢ʁ

Slide 48

Slide 48 text

ϑϨʔϜϫʔΫϨγϐ  143ͷ࣮૷ʢ[FOEEJBDUPSPTͳͲʣ  SPVUJOH࣮૷ʢ'BTU3PVUFͳͲʣ  NJEEMFXBSFͷ࣮ߦʢ.JEEMFMBOEͳͲʣ  ग़ྗʢ[FOEIUUQIBOEMFSSVOOFSͳͲʣ

Slide 49

Slide 49 text

࣮ྫ  IUUQTMPHNJKQUFDIBSUJDMFT  ϩάϛʔͷϦχϡʔΞϧ  lࠓճͷϦχϡʔΞϧͰ͸͜ͷ143 Λར༻͢Δ͜ͱͰɺಛఆͷ8FCϑϨʔ ϜϫʔΫΛར༻ͤͣʹΞϓϦΛ࣮૷͢ Δ͜ͱʹ͠·ͨ͠z

Slide 50

Slide 50 text

ΦϨΦϨϑϨʔϜϫʔΫ  ϑϨʔϜϫʔΫ؆୯ʹ࡞ΕΔ  143ʹ४ڌ͓͚ͯ͠͹ɺޙ͔Β;FOE &YQSFTTJWFͳͲʹ৐Γ׵͑Δ͜ͱ΋Մೳ  ΋ͪΖΜɺٯ΋  બ୒ࢶͷҰͭͱͯ͠ɺ͋Γ͔΋

Slide 51

Slide 51 text

NJEEMFXBSF ͍͔͕Ͱ͔ͨ͠ʁ

Slide 52

Slide 52 text

·ͱΊ  ॲཧΛNJEEMFXBSFͰ෼ׂ  هड़͕؆ܿʹɺςετ༰қʹ  143Ͱඪ४Խ͞ΕΔ͜ͱͰࠩ͠ସ͑Մೳʹ  %*ίϯςφͱͷ૊Έ߹Θͤ΋ศར  ίϯετϥΫλΠϯδΣΫγϣϯ

Slide 53

Slide 53 text

͋Γ͕ͱ͏͍͟͝·ͨ͠