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

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

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

C4c161ae9eeeed8f161197410f7a228a?s=128

Kenichiro Kishida

December 01, 2019
Tweet

Transcript

  1. 1)1ΛֶͿͱ͍͏͜ͱ
 
 -FBSOJOH1)1 ʙ8IBUXFSFBMMZOFFEUPMFBSO 1)1ΧϯϑΝϨϯε ,FOJDIJSP,JTIJEB !TJ[VIJLP

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

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

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

    ͜ͱͷग़དྷΔεΫϦϓτݴޠͱͳ͍ͬͯΔ "CPVU1)11)1)ZQFSUFYU1SFQSPDFTTPS https://ja.wikipedia.org/wiki/PHP_(ϓϩάϥϛϯάݴޠ)
  6. 8):VTF1)1       ࢓ࣄ+0# $.4 ❤1)1$PNNVOJUZ

    ֶߍ4DIPPM ❤1)1❤ 0UIFS ❤ ※ਤ͸ΠϝʔδͰ͢
 Image is for illustration purposes
  7. 8IBUNBLFXJUI1)1      8FC"QQMJDBUJPO 5PPM-JCSBSZ $-*$PNNBOE (6*"QQMJDBUJPO

    0UIFS +7. /&4
 FUDʜ ※ਤ͸ΠϝʔδͰ͢
 Image is for illustration purposes
  8. wίϯϐϡʔλʔ͕දݱ͢ΔΞϧΰϦζϜΛ ֶͿ-FBSOUIFBMHPSJUINT wࢦ͕͍ࣔ͋·͍Ͱ͸͍͚ͳ͍ͷͰɺޡΓ͕ গͳ͘ͳΔ*%&Λར༻͢Δ*OTUSVDUJPOT TIPVMEOPUCFBNCJHVPVT6TF*%& wݴޠಛ༗ͷར༻ํ๏΍पล஌ࣝΛֶͿ -FBSOMBOHVBHFTQFDJpDVTBHFBOE QFSJQIFSBMLOPXMFEHF wॻ͍ͯಈ͔͢8SJUFBOE3VO -FBSO1SPHSBNNJOH

    https://www.amazon.co.jp/dp/4798149772 http://algorithm.wiki/ja/app/
  9. wΞΠσΞΛΑΓૣ͘ܗʹ
 5PSFBMJTFPOFTDSFBUJWJUZGBTUFS
 wίϛϡχςΟ͕׆ൃ
 5IFDPNNVOJUZJTWFSZBDUJWF
 8):1)1

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

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

    https://www.amazon.co.jp/dp/4798149772 http://algorithm.wiki/ja/app/
  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
  13. w)5.-ݴޠ͡ΌΜ-BOHVBHF w$44ݴޠ͡ΌΜ ࠷ޙ͕-͡Όͳ͍͚ ͲελΠϧγʔτݴޠͱݴ͍·͢  -BOHVBHF w+BWB4DSJQUݴޠ͡ΌΜ-BOHVBHF w1)1͜͜ΛֶΜͰԿ͔Λ࡞Γ͍ͨʂ
 *XBOUUPMFBSO1)1UPNBLFTPNFUIJOH w42-ݴޠ͡ΌΜ-BOHVBHF

    "MPUPG4LJMMTOFFEFE
  14. None
  15. Webアプリって
 15分でできるんでしょ?
 
 I know that a web app can

    be made in 15 minutes. is it wrong?
  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
  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) ೖྗ ஝ੵ Ճ޻
  18. None
  19. -FBSO8FC https://www.amazon.co.jp/dp/4873118042 https://www.amazon.co.jp/dp/4774142042

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

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

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

  23. None
  24. None
  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!"
  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
  27. wؔ਺Λ࡞ͬͯΈΔ
 5SZNBLJOHBGVODUJPO wϑΝΠϧΛ෼ׂͯ͠ΈΔ
 5SZTQMJUUJOHUIFpMF w֎෦ϥΠϒϥϦΛ࢖ͬͯΈΔ
 5SZVTJOHUIFMJCSBSZ wΦϒδΣΫτࢦ޲ʹऔΓ૊ΜͰΈΔ
 5SZPCKFDUPSJFOUFEQSPHSBNNJOH wϑϨʔϜϫʔΫΛ࢖ͬͯΈΔ
 5SZVTJOHUIFGSBNFXPSL

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

    4MBDL
 ⬇ 
 IUUQTTMBDLJOQIQVTFST KBIFSPLVBQQDPN
  29. 5P#F1SPGFTTJPOBM w1)15IF3JHIU8BZ
 IUUQKBQIQUIFSJHIUXBZDPN wࣗ෼ͷମݧΛൃදͯ͠ΈΑ͏
 5SZQSFTFOUBCPVUZPVSFYQFSJFODF BT BTQFBLFS w044ͷιʔείʔυΛಡΜͰΈΔ
 5SZSFBEUIF044DPEF w044ʹύονΛ౤͛ͯΈΑ͏


    5SZNBLFBQBUDIGPSDPOUSJCVUFUP 044
  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]
  31. WJTJUNZCMPHHJUIVC https://github.com/sizuhiko http://blog.open.tokyo.jp