$30 off During Our Annual Pro Sale. View Details »

PHPを学ぶということ / phpcon-2019

PHPを学ぶということ / phpcon-2019

PHPは言語としては初学者にもやさしく、入門しやすい言語かもしれません。
一方で、実際にWebアプリケーションを作るにあたり、知らなければいけない周辺知識はたくさんあります。
ではまず、Webアプリケーションフレームワークのチュートリアルをやっておけば良いのでしょうか?
また、どこから学んだら良いかわからず、入門書っぽい本で学習するのが良いでしょうか?
このセッションでは、初学者(Web系の言語入門者を含む)にとって、Webアプリケーションを開発することを学ぶにはどこから取り組むのが良いのか?ということを紹介します。

Kenichiro Kishida

December 01, 2019
Tweet

More Decks by Kenichiro Kishida

Other Decks in Technology

Transcript

  1. 1)1ΛֶͿͱ͍͏͜ͱ


    -FBSOJOH1)1
    ʙ8IBUXFSFBMMZOFFEUPMFBSO
    1)1ΧϯϑΝϨϯε
    ,FOJDIJSP,JTIJEB
    !TJ[VIJLP

    View Slide

  2. ,FOJDIJSP,JTIJEB
    5PLZP +"1"/
    TJ[VIJLP!HNBJMDPN !TJ[VIJLP
    IUUQTHJUIVCDPNTJ[VIJLP
    IUUQCMPHPQFOUPLZPKQ

    View Slide

  3. View Slide

  4. w৘ใΛ૊৫͠ॲཧ͢ΔλεΫʹ͍ͭͯͷཧ
    ղΛ༰қʹ͠ɺΞϧΰϦζϜΛਖ਼֬ʹදݱ
    ͢Δ͜ͱ͕Ͱ͖Δɻ
    wਓؒಉ࢜ͷձ࿩ͱൺֱͯ͠ɺਖ਼֬ੑͱ׬શ
    ੑͷཁٻੑ͕ඇৗʹߴ͍ͱ͍͏ಛ௃͕͋
    ΔɻࣗવݴޠͰਓؒಉ͕࢜ର࿩͢Δ৔߹ɺ
    εϖϧϛε΍จ๏తͳΤϥʔ͕͋ͬͯ΋૬
    ख͸ঢ়گ͔Βద౰ʹิਖ਼͠ɺਖ਼֬ͳ಺༰Λ
    ೺Ѳ͢Δɻ͔͠͠ίϯϐϡʔλ͸ࢦ͕ࣔᐆ
    ດͰ͸ಈ࡞ͤͣɺϓϩάϥϚ͕ίʔυʹࠐ
    ΊͨҙਤΛཧղͤ͞Δ͜ͱ͸Ͱ͖ͳ͍
    8IBU1SPHSBNNJOH-BOHVBHF
    https://ja.wikipedia.org/wiki/ϓϩάϥϛϯάݴޠ

    View Slide

  5. w1FSTPOBM)PNF1BHF5PPMTɻ
    ೥ʹ(1-ͷԼͰެ։
    wಈతͳ8FCϖʔδΛੜ੒͢ΔπʔϧΛىݯ
    ͱ͍ͯ͠ΔͨΊɺެࣜͷॲཧܥʹ͸8FCΞ
    ϓϦέʔγϣϯ։ൃʹؔ͢Δػೳ͕๛෋ʹ
    ૊Έࠐ·Ε͍ͯΔɻݩʑ1)1͸ϓϩάϥ
    ϛϯάݴޠͱݴ͑Δ΋ͷͰ͸ͳ͘ɺ୯ʹς
    ϯϓϨʔτతͳॲཧΛߦ͏͚ͩͰ͋ͬͨ
    ͕ɺ౓ॏͳΔػೳ௥Ճ΍ίʔυͷॻ͖௚͠
    ʹΑΓɺݱࡏ͸໨తʹΑΒͣ൚༻తʹ࢖͏
    ͜ͱͷग़དྷΔεΫϦϓτݴޠͱͳ͍ͬͯΔ
    "CPVU1)11)1)ZQFSUFYU1SFQSPDFTTPS
    https://ja.wikipedia.org/wiki/PHP_(ϓϩάϥϛϯάݴޠ)

    View Slide

  6. 8):VTF1)1






    ࢓ࣄ+0#
    $.4
    ❤1)1$PNNVOJUZ
    ֶߍ4DIPPM
    ❤1)1❤
    0UIFS ❤

    ※ਤ͸ΠϝʔδͰ͢

    Image is for illustration
    purposes

    View Slide

  7. 8IBUNBLFXJUI1)1





    8FC"QQMJDBUJPO
    5PPM-JCSBSZ
    $-*$PNNBOE
    (6*"QQMJDBUJPO
    0UIFS +7. /&4

    FUDʜ

    ※ਤ͸ΠϝʔδͰ͢

    Image is for illustration
    purposes

    View Slide

  8. wίϯϐϡʔλʔ͕දݱ͢ΔΞϧΰϦζϜΛ
    ֶͿ-FBSOUIFBMHPSJUINT
    wࢦ͕͍ࣔ͋·͍Ͱ͸͍͚ͳ͍ͷͰɺޡΓ͕
    গͳ͘ͳΔ*%&Λར༻͢Δ*OTUSVDUJPOT
    TIPVMEOPUCFBNCJHVPVT6TF*%&
    wݴޠಛ༗ͷར༻ํ๏΍पล஌ࣝΛֶͿ
    -FBSOMBOHVBHFTQFDJpDVTBHFBOE
    QFSJQIFSBMLOPXMFEHF
    wॻ͍ͯಈ͔͢8SJUFBOE3VO
    -FBSO1SPHSBNNJOH
    https://www.amazon.co.jp/dp/4798149772
    http://algorithm.wiki/ja/app/

    View Slide

  9. wΞΠσΞΛΑΓૣ͘ܗʹ

    5PSFBMJTFPOFTDSFBUJWJUZGBTUFS

    wίϛϡχςΟ͕׆ൃ

    5IFDPNNVOJUZJTWFSZBDUJWF

    8):1)1

    View Slide

  10. http://gihyo.jp/news/report/2015/12/1401

    View Slide

  11. wίϯϐϡʔλʔ͕දݱ͢ΔΞϧΰϦζϜΛ
    ֶͿ-FBSOUIFBMHPSJUINT
    wࢦ͕͍ࣔ͋·͍Ͱ͸͍͚ͳ͍ͷͰɺޡΓ͕
    গͳ͘ͳΔ*%&Λར༻͢Δ*OTUSVDUJPOT
    TIPVMEOPUCFBNCJHVPVT6TF*%&
    wݴޠಛ༗ͷར༻ํ๏΍पล஌ࣝΛֶͿ
    -FBSOMBOHVBHFTQFDJpDVTBHFBOE
    QFSJQIFSBMLOPXMFEHF
    wॻ͍ͯಈ͔͢8SJUFBOE3VO
    -FBSO1SPHSBNNJOH
    https://www.amazon.co.jp/dp/4798149772
    http://algorithm.wiki/ja/app/

    View Slide

  12. wίϯϐϡʔλʔ͕දݱ͢ΔΞϧΰϦζϜΛ
    ֶͿʢ-FFU$PEFͳͲ-FBSOUIF
    BMHPSJUINT CZ-FFU$PEFPSTJNJMBS
    w1)14UPSNΛ࢖͓͏64&1)14UPSN
    w8FCΞϓϦέʔγϣϯαΠτΛ࡞ΔͳΒ
    )5.-$44+BWB4DSJQU )551 T

    1)1 42-ͱଟذʹΘͨΔ

    /FFE)5.-$44+4 )551 1)1BOE
    42-GPSCVJMEJOH8FCBQQMJDBUJPO
    wQIQBc4
    -FBSO1)1

    View Slide

  13. w)5.-ݴޠ͡ΌΜ-BOHVBHF
    w$44ݴޠ͡ΌΜ ࠷ޙ͕-͡Όͳ͍͚
    ͲελΠϧγʔτݴޠͱݴ͍·͢

    -BOHVBHF
    w+BWB4DSJQUݴޠ͡ΌΜ-BOHVBHF
    w1)1͜͜ΛֶΜͰԿ͔Λ࡞Γ͍ͨʂ

    *XBOUUPMFBSO1)1UPNBLFTPNFUIJOH
    w42-ݴޠ͡ΌΜ-BOHVBHF
    "MPUPG4LJMMTOFFEFE

    View Slide

  14. View Slide

  15. Webアプリって

    15分でできるんでしょ?


    I know that a web app can be
    made in 15 minutes. is it wrong?

    View Slide

  16. )JTUPSZ
    ݱࡏ
    )551
    )5.-
    +4
    1)1
    42-
    .PKBWJ
    "HBWJ
    4ZNGPOZ $BLF1)1
    $* ;FOE
    :JJ
    4MJN 'VFM -BSWFM "VSB Y
    https://github.com/pmjones/php-history

    View Slide

  17. PHPͷೖྗ͸HTTPϦΫΤετ

    ग़ྗ͸HTML͚ͩͲɺҰ୴๨ΕΑ͏

    / Input is HTTP request. 

    The output is HTML, but for now forget it
    PHP͔Β͸PDOܦ༝ͰSQL

    (Web APIͳΒHTTP CLIENT) 

    From PHP, execute SQL via PDO. 

    (If using Web API, use HTTP CLIENT)
    ೖྗ
    ஝ੵ
    Ճ޻

    View Slide

  18. View Slide

  19. -FBSO8FC
    https://www.amazon.co.jp/dp/4873118042
    https://www.amazon.co.jp/dp/4774142042

    View Slide

  20. -FBSO42-3%#
    https://www.amazon.co.jp/dp/4297104083
    https://www.amazon.co.jp/dp/4774180661

    View Slide

  21. -FBSO1)1
    http://php.net/manual/ja/getting-started.php

    View Slide

  22. https://qiita.com/shibacho/items/20f6eee42083c620b556

    View Slide

  23. View Slide

  24. View Slide

  25. 5SZ3VO
    > -
    $ php -S 0.0.0.0:8080 -t src

    PHP Development Server started

    Listening on http://0.0.0.0:8080

    Document root is /var/src

    Press Ctrl-C to quit.
    $ php -a

    Interactive shell

    php > var_dump("Hello World!");

    string(12) "Hello World!"

    View Slide

  26. w 1)1ͱ42-JUFΛΠϯετʔϧ͢Δ

    *OTUBMM1)1BOE42-JUF
    w )5.-λάͱ؆୯ͳ1)1ίʔυΛؚΜͩQIQ
    ϑΝΠϧΛ࡞ͬͯΈΔ

    $SFBUFBQIQpMFXJUI)5.-UBHTBOETJNQMF1)1DPEF

    http://php.net/manual/ja/tutorial.firstpage.php
    w )5.-ʹGPSNΛೖΕͯɺૹ৴͞Ε͖ͯͨ৘ใΛ
    औಘ͢Δ

    1VUUIFGPSNJO)5.-BOEHFUUIFTFOUJOGPSNBUJPO

    http://php.net/manual/ja/tutorial.forms.php

    http://php.net/manual/ja/language.variables.external.php
    w 1%0Λ࢖ͬͯ%#ʹ஋Λอଘͯ͠ΈΔ

    5SZTBWJOHUIFWBMVFJO%#VTJOH1%0

    http://php.net/manual/ja/book.pdo.php

    View Slide

  27. wؔ਺Λ࡞ͬͯΈΔ

    5SZNBLJOHBGVODUJPO
    wϑΝΠϧΛ෼ׂͯ͠ΈΔ

    5SZTQMJUUJOHUIFpMF
    w֎෦ϥΠϒϥϦΛ࢖ͬͯΈΔ

    5SZVTJOHUIFMJCSBSZ
    wΦϒδΣΫτࢦ޲ʹऔΓ૊ΜͰΈΔ

    5SZPCKFDUPSJFOUFEQSPHSBNNJOH
    wϑϨʔϜϫʔΫΛ࢖ͬͯΈΔ

    5SZVTJOHUIFGSBNFXPSL

    View Slide

  28. -PWF$PNNVOJUZ
    wશࠃ֤஍ͰΧϯϑΝϨϯε΍ษڧձ͕࣮ࢪ
    ͞Ε͍ͯ·͢$POGFSFODFTBOETUVEZ
    HSPVQTBSFIFMEJOFBDISFHJPO
    w1)1Ϣʔβʔζ ೔ຊޠ
    4MBDLʹՃೖ͠
    ͯɺަྲྀ࣭໰ͯ͠ΈΑ͏ʂ+PJO1)1
    VTFS +"1"/&4&
    4MBDL



    IUUQTTMBDLJOQIQVTFST
    KBIFSPLVBQQDPN

    View Slide

  29. 5P#F1SPGFTTJPOBM
    w1)15IF3JHIU8BZ

    IUUQKBQIQUIFSJHIUXBZDPN
    wࣗ෼ͷମݧΛൃදͯ͠ΈΑ͏

    5SZQSFTFOUBCPVUZPVSFYQFSJFODF BT
    BTQFBLFS
    w044ͷιʔείʔυΛಡΜͰΈΔ

    5SZSFBEUIF044DPEF
    w044ʹύονΛ౤͛ͯΈΑ͏

    5SZNBLFBQBUDIGPSDPOUSJCVUFUP
    044

    View Slide

  30. Walk on road, hm? Walk left side, safe. Walk right side, safe.

    Walk middle, sooner or later, “get squish just like grape.”



    Here, karate, same thing.

    Either you karate do "yes" or karate do "no."

    You karate do "guess so,"just like grape. Understand?


    [ from Karate Kid / Mr.Miyagi]

    View Slide

  31. WJTJUNZCMPHHJUIVC
    https://github.com/sizuhiko
    http://blog.open.tokyo.jp

    View Slide