Slide 1

Slide 1 text

-BSBWFMͷ Ξϓσ಺༰Λউख ʹධՁͯ͠Έͨ !LPUBNBU

Slide 2

Slide 2 text

ࣗݾ঺հ

Slide 3

Slide 3 text

ࣗݾ঺հ দຊ޺ଠ ·ͭ΋ͱ͜͏ͨ גࣜձࣾ4$065&3$50 ۀ຿ͷόοΫΤϯυ͸΄΅-BSBWFM ࣗసं͕޷͖ !LPUBNBU

Slide 4

Slide 4 text

ʗ ʗ స৬ر๬ͷ༑ਓ஌ਓΛ اۀʹ঺հ͠ใुΛಘΒΕΔ $UP#ਓࡐ঺հαʔϏε 4$065&3ͱ͸

Slide 5

Slide 5 text

༗ྉ৬ۀ঺հ ਓࡐ঺հձࣾ
 ϔουϋϯλʔ اۀ ٻ ৬ ऀ ༗ྉ৬ۀ঺հ ঺հͯ͠ใुΛಘΔʹ͸໔ڐ͕ඞཁ ʹ

Slide 6

Slide 6 text

4$065&3ͱ͸ ا ۀ స ৬ ऀ εΧ΢λʔ
 ొ࿥ऀ ݸਓ͕঺հͯ͠ใुΛड͚औΕΔ ʹ

Slide 7

Slide 7 text

ཧղͷ͋Δ૬ஊ૬ख ࣌ؒΛ͔͚ͨҙࢥܾఆ͕Ͱ͖Δ ࠷దͳٻਓΛબͼԠืͰ͖Δ ࠷΋స৬ऀʹدΓఴͬͨ঺հΛ࣮ݱ 4$065&3ͷར఺ 4$065&3ͷಛ௃

Slide 8

Slide 8 text

Slide 9

Slide 9 text

Slide 10

Slide 10 text

಺༰ Ξοϓσʔτͷ಺༰ΛউखʹධՁ w ධՁ࣠ w ͓ͬײ w ࣮༻ੑ w ˑ˒ͰධՁ

Slide 11

Slide 11 text

3FTQPOTBCMF ϨεϙϯεΛΫϥεԽͯ͠ఆٛͰ͖Δ ˒˒˒˒ˑ use Illuminate\Contracts\Support\Responsable; class ExampleObject implements Responsable { public function __construct($name = null) { $this->name = $name ?? 'Teapot'; } public function status() { switch(strtolower($this->name)) { case 'teapot': return 418; default: return 200; } } public function toResponse() { return response( "Hello {$this->name}", $this->status(), ['X-Person' => $this->name] ); } } w UP3FTQPOTFΛ࣮૷͠ ͨ3FTQPOTBCMFܕΛฦ Γ஋ʹ͢Δ͜ͱͰɺ೚ҙͷ ϨεϙϯεΛ࣮ݱͰ͖Δɻ w "1*͝ͱʹWJTJCMFઃఆ͠ ͍ͨͱ͖ͱ͔ಛघͳϨεϙ ϯεʹ͍ͨ͠ͱ͖͸࢖͑Δ ͔ͳʝʁ

Slide 12

Slide 12 text

#MBEFJG #MBEFͷ!ؔ਺ΛಠࣗఆٛͰ͖Δ ˒˒ˑˑˑ w #MBEFJG Λ 4FSWJDF1SPWJEFSCPP U Ͱఆ͓͚ٛͯͩ͘͠Ͱ࢖ ༻Մೳ w !ؔ਺͸CMBEFͰ࢖༻Մೳ w 1PMJDZͱͷซ༻Ͱ৭ʑ޿͕ Γͦ͏ɻɻʁ w CMBEF࢖ͬͯͳ͍ͱ͍Βͳ͍ use Illuminate\Support\Facades\Blade; Blade::if('admin', function () { return auth()->check() && auth()- >user()->isAdmin(); }); @admin Secret Page @else Welcome Guest. Login @endadmin

Slide 13

Slide 13 text

$VTUPN7BMJEBUJPO3VMF όϦσʔγϣϯϧʔϧΛΫϥεԽͯ͠࠶ར༻Մೳʹ ˒˒˒˒ˑ w 3VMFΛ࣮૷ͨ͠Ϋϥε Λఆٛ͠ɺϧʔϧͷ஋ ʹΠϯελϯεΛ౉͢ ͚ͩͰϧʔϧઃஔͰ͖ Δ class CowbellValidationRule implements Rule { public function passes($attribute, $value) { return $value > 10; } public function message() { return ':attribute needs more cowbell!'; } } w ࣄۀυϝΠϯʹґଘ͠ ͨόϦσʔγϣϯ͸Α ͘࢖͍·Θ͢ͷͰ༗༻

Slide 14

Slide 14 text

EVNQDPMMFDUJPO DPMMFDUJPOͷϝιουνΣʔϯͷ్தͰத਎ΈΕΔΑ͏ʹ ˒ˑˑˑˑ w ίϨΫγϣϯͷ్தͰ EVNQ ೖΕΕ͹ͦͷ్த Λඪ४ग़ྗ͢Δ w EE ͩͱFYJUͱͳΔ w ։ൃதͩͱ݁ߏ࢖͏͔΋͠Ε ͳ͍͕ɺMBSBWFMUJOLFSͰ ͍ͩͿࣄ଍Γͦ͏ɻɻ collect([1,2,3])->map(function($i){ return $i * 2; })->dump()->reject(function($i){ return $i < 3; });

Slide 15

Slide 15 text

1BDLBHF"VUP%JTDPWFSZ BQQQIQมߋ͠ͳͯ͘΋ύοέʔδ࢖͑Δ ˒˒˒˒˒ w ύοέʔδଆͰࠨهͷΑ͏ͳ ઃఆΛDPNQPTFSKTPOʹ ॻ͍͓͚ͯͩ͘Ͱɺউखʹొ ࿥͞ΕΔɻ w l'PPaa#BSa a4FSWJDF1SPWJEFSJT OPUGPVOEz஍ࠈ͔Β։์ ͞ΕΔɻɻʂ "extra": { "laravel": { "providers": [ "Foo\\Bar\\ServiceProvider" ], "aliases": { "Bar": "Foo\\Bar\\Facade" } } }

Slide 16

Slide 16 text

8IPPQT ؼ͖ͬͯͨ8IPPQT ˒˒˒˒˒ w ΤϥʔϋϯυϦϯάΛ͖Ε͍ ʹදࣔ w *%&༻ʹϦϑΝϨϯεΛදࣔ w ग़ྗϑΥʔϚοτΛબ୒Ͱ͖ Δ +40/ 9.- 40"1 w ֦ு͕༰қ

Slide 17

Slide 17 text

UISPX@JGIFMQFS CPPM൑ఆͰྫ֎౤͛Δϔϧύʔ ˒˒˒˒ˑ w ΄΅λΠτϧ௨ΓͰ͆͢ w &YDFQUJPO)BOEMFSͰϨ εϙϯεఆ͍ٛͯ͠Δ৔߹͸ ࢖͑Δ͔΋ $foo = true; throw_if($foo, new BarException('Foo is true')); // or throw_if($foo, BarException::class, 'Foo is true');

Slide 18

Slide 18 text

7BMJEBUJPOSFUVSOTSFRVFTUEBUB 7BMJEBUJPOͰఆٛͨ͠ϑΟʔϧυzͷΈzσʔλநग़ͯ͠ ฦ͢ ˒˒˒˒˒ w SFRVFTU POMZ Λ࢖ Θͳͯ͘Α͘ͳͬͨɻ w όϦσʔγϣϯϧʔϧແ͠Ͱ σʔλΛड͚औΓ͍ͨ৔߹͸ ۭจࣈͰϧʔϧΛࢦఆ͢Δɻ w ؔ৺͕ڽॖ͞ΕΔͷͰ $data = $this->validate(request(), [ 'name' => 'required', 'price' => 'required|numeric', 'notRequiredField' => '', ]); // $data = request()->only('name', 'price', 'category_id');

Slide 19

Slide 19 text

'SPOUFOEQSFTFUT BSUJTBOίϚϯυͰKTϑϨʔϜϫʔΫ؆୯ઃஔ ˒ˑˑˑˑ w 3FBDU CPPUTUSBQ 7VFKTΛઃஔͰ͖ΔΑ͏ʹ w ਖ਼௚࠷ॳ͔͠࢖Θͳ͍ʝ php artisan preset react|bootstrap

Slide 20

Slide 20 text

.JHSBUF'SFTI$PNNBOE શςʔϒϧΛ%SPQ͔ͯ͠ΒϚΠάϨʔγϣϯ࣮ߦ ˒˒˒˒˒ w SFGSFTIͱ͸ҧ͍ϩʔϧ όοΫ͠ͳ͍ͷͰɺݱঢ়ͷ%# ঢ়گ೗ԿʹΑͬͯϚΠάϨʔ γϣϯ͕ࣦഊ͠ͳ͍ w ຊ൪%#ΛϛϥʔϦϯάͯ͠ εςʔδϯά%#Λ࢖͍ͬͯ ΔϓϩδΣΫτͰ͸༗༻ php artisan migrate:fresh

Slide 21

Slide 21 text

&NBJM5IFNFTJO.BJMBCMFT ϝʔϧςϯϓϨʔτΛ؆୯ʹઃఆՄೳʹ ˒˒ˑˑˑ w .BJMBCMFͷΫϥεͰ UIFNFΛࢦఆͰ͖ΔΑ ͏ʹ w DPOGJH bNBSLEPXOQBUIT` ʹࢦ ఆ͞ΕͨDTTΛಡΈࠐΉ w ෳ਺ͷαʔϏεΛ࣮ߦ class SendInvoice extends Mailable { protected $theme = 'my-theme'; ... }

Slide 22

Slide 22 text

.BJMBCMFTSFOEFSUPCSPXTFS ϝʔϧจ໘Λϒϥ΢βͰ֬ೝͰ͖ΔΑ͏ʹ ˒˒˒˒˒ w 3FOEFSBCMFΛܧঝͨ͠Ϋϥε Ͱ͋Ε͹ɺϨεϙϯεʹΠϯελ ϯε౉͚ͩ͢Ͱϒϥ΢βνΣοΫ Մೳʹ w ࠓ·Ͱ͸NBJMDBUDIFSͳͲͰ ϝʔϧඈ͹ͨ͠Γ͍ͯͨ͠ͷͰɺ σβΠϯमਖ਼͸͍ͩͿָʹ Route::get('/demo', function () { return new App\Mail\UserWelcome(); });

Slide 23

Slide 23 text

WFOEPSQVCMJTI1SPWJEFSQSPNQU WFOEPSQVCMJTI࣮ߦ࣌࢖༻͢Δ1SPWJEFSΛબ୒͢Δ Α͏ʹ ˒˒ˑˑˑ w WFOEPSQVCMJTI࣮ߦ࣌શ෦ QVCMJTI͞ΕΔͷΛ๷͙ w ։ൃ࣌ϓϥάΠϯͷνΣοΫͰ͸ ࢖͑Δͱࢥ͏͚Ͳɺ࣮ӡ༻࣌͸ UBHIPHFͰࢦఆ͢ΔͷͰɺͦΕ ΄ͲԸܙ͸ͳ͍͔ͳ͊ɻɻ

Slide 24

Slide 24 text

NBLJOH.PEFM'BDUPSZ NPEFMGBDUPSZΛBSUJTBOίϚϯυͰੜ੒Մೳʹ ˒ˑˑˑˑ w ίϚϯυҰൃͰNPEFMGBDUPSZ ͕ੜ੒Մೳ w ͨͩɺੜ੒͞ΕΔͷ͕ɺۭͷ΋ͷ ͳͷͰɺਖ਼௚SZNBOBMV GBDUPSZHFOFSBUPSͰ.PEFM ͷGJMMBCMFΛ൑ఆͯࣗ͠ಈੜ੒ ͢Δ΄͏͕࢖͍উख͕͍͍ɻɻ php artisan make:factory UserFactory

Slide 25

Slide 25 text

·ͱΊ -BSBWFM͸։ൃޮ཰ˢͷόʔδϣϯ w ϩʔΧϧͰͷΈҙຯ͕͋ΔPS։ൃޮ཰্͛ΔΑ͏ͳΞοϓσʔ τ͕ओͩͬͨɻ w -BSBWFM͕XFC։ൃͷϑϨʔϜϫʔΫͷಓΛಥ͖ਐΜͰ͍Δҹ ৅ ͦ΋ͦ΋ͦ͏͍͏ཱͯ෇͚͚ͩͲ w ٕज़తʹഁյతʹ໘ന͍Ξοϓσʔτͱݴ͏ײ͡Ͱ͸ͳ͔ͬͨʝ w -54خ͍͠ DPNQPTFSDSFBUFMBSBWFMMBSBWFM QIQBSUJTBOTFSWF ૣ଎࢖ͬͯΈΑ͏