Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laravelの歩き方 〜Webアーキテクチャを学ぶ〜

Laravelの歩き方 〜Webアーキテクチャを学ぶ〜

Laravelの基礎を知っている方向けに、Webアーキテクチャの視点からLaravel解説します。

More Decks by 株式会社エッグシステム

Other Decks in Programming

Transcript

  1. Laravel
    Web

    View Slide

  2. 8,6$
    ● -13*
    ● 2.'5/+
    ● 70
    ● )(4 &"%#


    ■ GCP / AWS
    ■ laravel / rails / .net
    ■ nuxt
    ○ IT
    ■ ERP
    ○ HP !
    ■ wordpress

    View Slide


  3. View Slide

  4. '-%,:
    ● Laravel*6 &710
    ● #Laravel /)
    ● Laravel20'-%(.

    ● Web "!3
    ● MVC$+Web 98045

    View Slide

  5. &)%(
    ● Laravel,*

    Laravel-
    ● !$ Web$!$#
    ● Laravel$"$#'+

    View Slide


  6. / 1
    ● ")
    ○ *,!


    %+.-
    ○ '($0

    View Slide

  7. $+'
    ● Laravel MVC (%)!
    ● DI" ) #
    ● readable 1/10
    ,&
    ● Laravel *. -

    View Slide

  8. "!

    1. Laravel$

    2. Laravel
    ○ 1 Laravel
    3. Laravel #
    ○ MVC
    ○ MVVM
    ○ Flux

    View Slide

  9. Laravel

    View Slide

  10. LaravelconfigF@FW
    ● Laravel
    configF@=;?
    ○ config*0%6*0config
    ○ !-2':config94 E8
    ■ php artisan config:cache
    ○ Laravelconfig*06envBD
    ■ config = envAC
    ● configB7"3)#,1(%
    ○ configenv<
    #$+'/( .& 5>

    View Slide

  11. ● config. !5_ZMBODIQW
    ● DI]G. !5HY#3&T]\NU
    ● Laravel DIAIR'!/,7*08&
    ○ %8-&/6+!(D
    Hb!7&'7&TG
    ○ IR!7'8."8& PG
    ● DI^@;:924)*
    ○ `RIRESC?=EKZ
    ■ D=IR[
    ○ aJX/6$317$KZ
    ■ #3&!7'8."8&HY
    Dependency Injection()

    View Slide

  12. DI -*81: (Route.php +)
    ● (')# (# )(.
    ○ readable
    ● ,0<75)(.
    ○ Route.php@getController
    ● $ &"( (# #!)96
    ○ Container.php@build
    ● #!)
    )(%
    ● ;(# 24 /(3=

    View Slide

  13. )& ("$
    ● ("$'
    ○ Container.php
    ● =A("$' - 6B0I.*F
    ○ 3<@' 2( !( H:I.
    ○ ("$' ' 28;( !( G

    ● ("$composite%!)( 7C
    ○ ("$/("$,5E>
    41
    ○ ( #'!8;
    ● DI+)& ("$ 0' ?J
    9D

    View Slide

  14. ● .%- "DK *
    ● +!$.49I
    ○ @GIlluminate¥Http¥Request$.4
    ○ php?A$_get 0B6H
    ● config1'..%- "DK
    ○ DI0 8>E2.%*DK ;
    ● Application.php3
    9I
    ○ Application.php- "
    ○ composite$.-
    9J
    ● FacadeDK9<
    ○ Facade(+!*7FC)/:=5
    .%&,#

    View Slide

  15. Tips: "5,$0$
    ● .#(?;'5%8JI

    ● "5,$0$9E8JI 0$
    ● /'20$GetterSetterHA<:;
    ○ 4%5-5$BF
    ○ "5,$0$4%5-5$=* FD6
    ● DB$(35#@G1$(+5$'5%7> 9EC
    ● Laravel<:"5,$!4&)

    View Slide

  16. Laravel

    View Slide

  17. Laravel
    ● !"& '$%(

    ○ https://readouble.com/laravel/6.x/ja/lifecycle.html
    ● !"2#)

    ○ HTTPConsole
    ■ public/index.php
    ■ artisan
    ● HTTPConsole

    View Slide

  18. ● Laravel%$+(,public/index.php.-
    ● public/index.php,
    ○ public/index.php
    ● Request!,
    ○ Request.php@capture
    ○ SymfonyRequest.php@createFromGlobals
    ● '/Global #(32
    ○ Kernel.php@handle
    ○ PipeLine.php@then
    ● )"+10+*,&#(32
    ○ Router.php@dispatch
    ● readable
    HTTP, (

    View Slide

  19. Console*"'

    ● artinsan/.
    ○ php artisanartisan#';<
    ○ artisann+=34
    ○ artisan
    ● 058SymphonyConsole)%*")$*

    ● -
    297Artisan&) (*
    ○ Kernel.php@handle
    ○ Artisan&) )!
    ● )!34&) ,1:6
    ○ Application.php@run
    ○ SymphonyApplication.php@run

    View Slide

  20. HKernel6G7B
    ● 2?+."-!#:/
    ● bootstrap/app.php+."-!#8@9
    ○ bootstrap/app.php
    ○ (-
    .&',%;
    ● 0F
    31I.&-!#C>
    ○ HTTP.$+
    ○ Console.$+
    ○ ExceptionHandler
    ● 5○ .&',%*.)

    EA=

    View Slide

  21. Laravel

    View Slide

  22. MVC (Model, View, Controller)
    ● 3I+$-2*&21
    ● ModelViewControllerR
    ● 5K BN
    *&21
    ● Laravel<9ModelController?
    ● ;FJ/"!%(OQ<9
    *&216
    ○ /"!%(C7H=
    ● LaravelP02(,'0) 1'1#@:
    ○ *.+2&*2%EGDA
    ○ Route::bindBN
    ■ Eloquent4>BM8L

    View Slide

  23. MVVM (Model, View, ViewModel)
    ● $*++ FW &',
    ● Model,"(
    6
    ● ViewModelView
    Model> 9
    ● Graphql.) 32 &
    ● Vuejs+%,!+
    85
    ○ ViewComposer.1,7/&,
    ○ 1+%,!+Blade (#+
    ● Controller-=
    ○ Route::view.
    ○ Route::view32php artisan route cache4;0:

    View Slide

  24. Flux
    ● ,67(7) 0"18
    ● Facebook LE '!7+%87
    ○ Facebook
    ● 4#(MGFC##0

    ● 7(683 emit/5+8;

    ● @W28)3* ?RJO

    ○ YDQ?R PH04&(
    ○ 9N .6$#TRZ=
    ● -3!> I:XSBA?RJUKV
    ○ UXWebSocketX<KV
    ○ laravel-echo-server

    View Slide

  25. )
    ● " '+
    ● "!*%
    ● Laravel#&($
    3"!!
    ○ MVC
    ○ MVVM
    ○ Flux

    View Slide

  26. DI9B
    ● DI9B
    ● PHP75 (#*&+/%,
    ● G=630 G=631@A5
    ○ +,#,:9B?24'
    ● -D>.H4';C

    ○ '!
    ○ $
    ○ E8#)",,
    ○ +

    View Slide